Multiplot

来自Shiyin's note
Shen讨论 | 贡献2016年2月1日 (一) 08:50的版本
跳到导航 跳到搜索
  • 默认的!p.multi=[i,n,m]可实现多个panel,但是每个panel都有自己的x,y坐标轴,有时显得不够紧凑
  1. 解决办法是再额外定义!Y.margin 和!X.margin 默认值是!X.magrin=[10, 3] !Y.margin=[10, 3]
  • astro_lib中的multiplot可实现紧凑的多panel图
  • 完全自定义
  • 前面两总方案当中,不能在plot里面再设置margin,必须提前使用!X.magrin=[10,10]之类的方式

multiplot

multiplot, pmulti, gap=, xgap=, ygap=, /square, /doxaxis, /doyaxis, 
      mTitle=, mTitSize=, mTitOffset=, mxTitle=, mxTitSize=, mxTitOffset=, 
      myTitle=, myTitSize=, myTitOffset=, xtickformat=, ytickformat=
      /default, /reset, /rowmajor, /initialize

例子

multiplot,/init
multiplot,[1,3]
plot,x,y,ytitle='y'
multiplot
plot,x,y
multilplot
plot,x,y,,xtitle='x',ytitle='y'
multilplot,/reset

这样得到的图的panel是合在一起的

自定义

  • position可精确定位plot的位置,在0-1范围内 例如POS=[0., 0.5, 0.5, 1.0]
  • [x,y,z]margin可控制图离边界的距离 默认xmargin=[10,3],ymargin=[4,2]单位是字符的宽度,可以更改数值,甚至为负
  • 生成坐标,但是不label坐: 用[x,y,z]tickv=replicate(' ',N+1),[x,y,z]ticks=N