首页 > 解决方案 > 使用标题列作为 y 轴的固定值

问题描述

我有看起来像这样的数据(因为空行 gnuplot 不会绘制任何东西,所以我有一个中断的图表)。

0,1,2,4,5,6
899.9999999999869,899.9999999999869,899.9999999999869,3602759.9999999995,845649.9999999999,899.9999999999869
842729.9999999999,842729.9999999999,842729.9999999999,5517769.999999999,3600219.9999999995,842729.9999999999
,,,,,
845649.9999999999,845649.9999999999,845649.9999999999,,,
3600219.9999999995,3600219.9999999995,3600219.9999999995,,,

到目前为止,我将这些列中的每一列都放在了单独的文件中,并将其绘制成这样:

plot for [i=1:6] "".i.".dat" using 2:(i) with linespoints

(i)导致 gnuplot 通过两个点画一条线,都在一个固定的 y 上。

我可以做同样的事情,但使用第一行/每列的标题作为 y 的值吗?例如,对于第二列,我想用 绘制plot "data.dat" using 2:(2),但哪里(2)不是硬编码而是取自标题?

标签: gnuplot

解决方案


是的,如果您的 gnuplot 版本足够新。从(我认为)版本 5.2.2 开始,可以在 using 说明符内评估函数“columhead(x)”。然而,它计算为一个字符串,因此在将其用作 ay 坐标值之前必须将其转换为一个数字:

   set datafile separator comma
   plot for [i=1:6] "".i.".dat" using 2:(real(columnhead(i))) with linespoints title "column ".columnhead(i)

推荐阅读