我有大量(超过2000个)数据文件,我想制作一个使用Gnuplot的图。每个文件包含要在同一图中绘制的多组数据。我正在使用Perl脚本将每个文件预处理为由Gnuplot摄取的表单,并生成Gnuplot脚本,该脚本将由Perl的系统调用执行以生成outplot文件。每个数据文件可以包含大约10组数据,其中每组表示另一个参数的不同值。我想用实线绘制每个集合,但使用不同的颜色,并在图例/键中有一个标签,表示该另一个参数的值。为了获得多行颜色,我目前正在重新格式化每个文件,使得第1组(第2列)后面是两个空白行,然后是第2组(2列),后面是两个空行,依此类推。每组的第一行都有一个列标题。第二列标题旨在作为该集合的键的文本。在Gnuplot脚本的开头我放了一个
set key autotitle columnheader
我正在使用以下
生成情节plot for [i=0:9] "datafile" using 1:2:(column(-2)) with lines lc variable
除了所有键标签都相同并且是第一个数据集中的标签外,这种方法大多有效。
如果我重新格式化数据文件,以便我有11列(1 X和10 Y列)数据并使用
plot for [i=0:9] "datafile" using 1:(column(i+2)) title columnhead(i+2) with lines
我可以获得我想要的关键标签,但现在无法获得不同颜色的每一行。
如果这些不起作用,那么这是另一种获取可能与一个文件不同的关键标签的方法。
答案 0 :(得分:1)
您需要明确使用index
来选择数据集,然后密钥是正确的。考虑数据文件
"first set"
1 1
2 2
"second set"
3 3
4 4
并用
绘制plot for [i=0:1] "datafile" using 1:2:(column(-2)) index i title columnhead(1) lc variable
因此,对于您的数据文件,plot命令将是
plot for [i=0:9] "datafile" using 1:2:(column(-2)) index i title columnhead(1) with lines lc variable
在我给出的示例中添加title columnhead(1)
是必要的,因为gnuplot版本4.6在单列列头上争用两列数据。在当前的开发版本中,这不再是必要的了。