1

我正在阅读 Gnuplot in Action 一书,遇到了讨论“每个”命令的部分。作者使用的样本数据是:

# time - value
0 100.03 # temperature
0 2.10 # pressure
1 100.26 # t
1 2.02 # p
2 101.34 # t
2 1.95 # p
3 102.41 # t
3 1.87 # p

他使用以下命令绘制温度与第一列数据(时间)的关系:

plot "data" every 2 using 1:2 with lines

有没有办法在不必操纵文件本身的情况下绘制温度与压力的关系?换句话说,是否可以将同一列用于绘图的 x 和 y 数据?

4

1 回答 1

1

我不知道怎么做,因为 gnuplot 一次读取 1 个“记录”。您可以告诉 gnuplot 要读取哪些记录,但没有办法告诉 gnuplot 混合相邻的记录(除了将繁重的工作交给其他实用程序)。但是,由于 gnuplot 可以读取其他实用程序的标准输出,因此您可以这样做而不会弄乱位于磁盘上的文件或创建任何临时文件。以下是使用 awk 的方法:

#untested
plot '<awk "BEGIN{getline}{a=$2;getline; b=$2;    print a,b}" test.dat' u 1:2 w lines
#          #discard header #line1        #line2  #print mix

使用 可能有更简单的方法sed,但我不太了解sedawk这还不错

于 2012-10-09T23:58:55.223 回答