我可以使用IDL中的两个参数创建二维图,即星形成率(y轴)与时间(x轴)。
但是我想包含对应于每个数据点的红移(另一个变量),比如说,作为顶部的x轴。当我尝试将第三个变量添加到PLOT程序时,它没有工作,我也无法找到有关如何在线完成此任务的任何讨论。任何帮助表示赞赏。
答案 0 :(得分:0)
首先运行PLOT.PRO
并设置NODATA
关键字,XAXIS=4
和YAXIS=4
来压缩每个轴。然后,您可以使用AXIS.PRO
程序定义每个轴。然后你可以使用OPLOT.PRO
绘制Z对X和Z对Y的点,其中Z =恒星形成率,X =时间,Y =红移。查找[XYZ]AXIS
关键字的详细信息,以确定每次绘制哪个轴。您甚至可以使用带有COLOR
程序的AXIS.PRO
关键字为每个轴着色。
唯一的技巧是你必须在绘图之前将Y数据点缩放到X轴刻度,因为你在调用[XYZ]RANGE
时会明确定义PLOT.PRO
(你可以做到相反并将其缩放到Y并重新定义X,这是您的选择)。您需要执行此缩放,因为OPLOT.PRO
以及PLOTS.PRO
使用调用[XYZ]RANGE
时定义的原始PLOT.PRO
将设备坐标转换为数据坐标。
这有意义吗?
答案 1 :(得分:0)
您始终可以将颜色设置为第三维(即颜色或尺寸)。
答案 2 :(得分:0)
首先调用PLOT,TIME,SFR,XSTYLE = 9强制精确范围并抑制顶部x轴
然后使用AXIS程序创建顶部x轴 小心那个轴的刻度,你想要对应你从TIME变量计算的REDSHIFT
速度为底部x轴,频率为顶部y轴的示例:
> plot, vel, spec, xsty=9, xtick_get=xtick, xtit='Velocity (km/s)', ytit='Antenna Temperature (K)'
> axis, !x.crange[0], !y.crange[1], xaxis=1, xtickv=((ref_freq - ref_freq/299792.458*xtick)), xtickformat='(F8.3)', xticks=n_elements(xtick)-1, xrange=(ref_freq - ref_freq/299792.458*minmax(!x.crange)), chars=1.5