Some Useful SW(for win) Some Useful SW(for linux)

-- News --

IDL Graphics vs. Direct Graphics

IDL Graphics were introduced in IDL 8.0, providing a simple and powerful way to visualize data. IDL Graphics are the preferred method to view data in IDL because the functions are easy to use and the graphics can be modified after visualization.

IDL Direct Graphics

IDL Direct Graphics is the original graphics rendering system introduced in IDL. Graphic displays creating using Direct Graphics are static — once created, no changes can be made without recreating the visualization being displayed. If you have used routines such as PLOT or SURFACE, you are already familiar with this graphics system. The salient features of Direct Graphics are:

Direct Graphics use a graphics device (X for X-windows systems displays,WIN for Microsoft Windows displays, PS for PostScript files, etc.). You switch between graphics devices using the SET_PLOT Procedure command, and control the features of the current graphics device using the DEVICE Procedure command. Once a direct-mode graphic is drawn to the graphics device, it cannot be altered or re-used. This means that if you wish to re-create the graphic on a different device, you must re-issue the IDL commands to create the graphic. When you add a new item to an existing direct-mode graphic (using a routine like OPLOT or XYOUTS), the new item is drawn in front of the existing items.


      IDL> !p.background = !p.color
      IDL> !p.color = 0
      ;/nodata表示画出绘图框,框内不显示数据
      IDL> plot,[1,10],[0,20],/nodata

      
      
IDL> plot,[1,10],[0,20],/nodata IDL> oplot,indgen(10) IDL> plots,indgen(10),indgen(10)+3 IDL> plots,indgen(10)+9 % PLOTS: When only 1 param, dims must be (2,n) or (3,n) % Execution halted at: $MAIN$
plot,indgen(10),xstyle = 1,ystyle = 2,xrange = [-10,10], linestyle = 2,xthick = 5,position = [0.35,0.05,0.65,0.95] [xy]style 1:坐标轴两侧为数据端点值,2:稍微扩大坐标轴范围到合适, 4:两侧坐标轴均不出现, 8:[x]上侧([y]右侧)坐标轴不出现 linestyle 0:实线 1:间断点 2:虚线: 4:-··虚线 8:长虚线(好看) [xy]thick [xy]的坐标标度有几个 position[x0,y0,x1,y1] 默认坐标系统为/normal,均为距离左下的x0,y0,x1,y1
IDL> plot,indgen(10),xstyle = 1,ystyle = 2,xrange = [-10,10], linestyle = 2,xthick = 5,position = [0.15,0.05,0.75,0.95] IDL> axis,0.5,/normal,yaxis = 1,yrange = [0,5],/save,ytitle = 'line' IDL> oplot,indgen(10) axis函数添加坐标轴,不指名位置则默认在原坐标轴的另一侧. 0.5,/normal表示normal坐标系统下坐标值中间位置。 ?遗留问题:如何修改y坐标右侧坐标轴的刻度长度为0,再覆盖上新的刻度
IDL> plot,indgen(10),xstyle = 1,ystyle = 2,xrange = [-10,10], linestyle = 2,xthick = 5,position = [0.15,0.05,0.75,0.95] IDL> axis,1,/normal,yaxis = 1,yrange = [0,5],/save,ytitle = 'line' IDL> oplot,indgen(4)
plot,indgen(10),xstyle = 1,ystyle = 2,xrange = [-10,10], linestyle = 2,position = [0.15,0.05,0.75,0.95] ;现在绘图的坐标框的位置,/normal坐标系下 IDL> !x.window[0] 0.15000001 IDL> !x.window[1] 0.75000000 IDL> !y.window[0] 0.050000001 IDL> !y.window[1] 0.94999999
IDL> xyouts,0.5,0.9,/normal,size = 2,align = 0.5,'aaa' ;在normal的0.5,0.9坐标处下字符串,align为0左对齐,0.5居中对齐,1右对齐
/noerase ;不擦去原来的图像 /isotropic ;坐标等比例(各向同性) overplot ;等值线画线 当图片保存为eps格式时,默认为白色背景
margin,position,regin三个函数均可以用来控制绘图范围。 !p.multi用来绘制多个图形 IDL> !x.margin = [2,3] IDL> !y.margin = [1,3] ;margin中参数为距离边界的字符数 IDL> plot,indgen(10)
IDL> plot,indgen(10),position = [0.1,0.3,0.7,0.6]
IDL> plot,indgen(10),position = [0,0,1,1]
IDL> plot,indgen(10),xmargin = [0,0],ymargin = [0,0]
;omargin用来设置总的绘图框距离边界的字符数 IDL> !p.multi = [0,2,2,0,1] IDL> ;2*2子图,最后一个1表示按列画图 IDL> !x.omargin = [0,0] IDL> !y.omargin = [0,5] IDL> plot,indgen(10),xmargin = [0,5],ymargin = [3,0] IDL> plot,indgen(10),xmargin = [0,-5],ymargin = [0,-5] ;接着上一个图 ;要删除一个字符串,使用color = !p.background覆盖 IDL> !p.multi = [1,2,1,0,0] IDL> plot,indgen(10),xmargin = [0,3],ymargin = [3,-5] IDL> xyouts,0.5,0.9,/normal,'hello ustc' IDL> xyouts,0.3,0.9,/normal,align = 0,'hello ustc'
;polyfill给一个闭合区域添加颜色 ;/isotropic等比例 IDL> theta = (findgen(181) - 90 ) / 180. * !dpi IDL> x = cos(theta) IDL> y = sin(theta) IDL> plot,x,y,xstyle = 1,ystyle = 2,xrange = [-1,1],linestyle = 2,/isotropic IDL> polyfill,x,y