我有看起来像这样的数据(因为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)
不是硬编码而是取自标题?
答案 0 :(得分:2)
是的,如果您的gnuplot版本足够新。从(我认为)5.2.2版开始,可以在使用说明符中评估函数“ columhead(x)”。但是,它的计算结果是字符串,因此在将其用作y坐标值之前,必须将其强制转换为数字:
set datafile separator comma
plot for [i=1:6] "".i.".dat" using 2:(real(columnhead(i))) with linespoints title "column ".columnhead(i)