使用gnuplot绘制文件中的所有列,而不指定列数

时间:2015-03-16 14:10:55

标签: gnuplot data-visualization

我想要使用gnuplot绘制大量的数据文件。文件采用文本形式,采用多列形式。我想使用gnuplot绘制给定文件中的所有列,而不需要识别要绘制的列的数量,甚至是文件中的总列数,因为列的总数往往会在我正在拥有的文件。有什么方法可以使用gnuplot来做到这一点吗?

1 个答案:

答案 0 :(得分:8)

你可以通过不同的方式解决这个问题,有些方法更不优雅。

以以下文件data为例:

1 2 3
2 4 5
3 1 3
4 5 2
5 9 5
6 4 2

这有3列,但是你想编写一个通用脚本而不假设任何特定的数字。我的方法是使用awk通过system()调用在gnuplot脚本中获取文件中的列数:

N = system("awk 'NR==1{print NF}' data")
plot for [i=1:N] "data" u 0:i w l title "Column ".i

enter image description here

假设您不想使用system()来电并知道列数始终低于某个最大值,例如10:

plot for [i=1:10] "data" u 0:i w l title "Column ".i

然后gnuplot会抱怨不存在的数据,但仍将绘制第1列到第3列。