使用IDL中的三个参数创建二维图

时间:2015-03-06 05:17:56

标签: plot idl

我可以使用IDL中的两个参数创建二维图,即星形成率(y轴)与时间(x轴)。

但是我想包含对应于每个数据点的红移(另一个变量),比如说,作为顶部的x轴。当我尝试将第三个变量添加到PLOT程序时,它没有工作,我也无法找到有关如何在线完成此任务的任何讨论。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

首先运行PLOT.PRO并设置NODATA关键字,XAXIS=4YAXIS=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