Gnuplot脚本不会为多个数据集创建正确的键/图例标签

Gnuplot脚本不会为多个数据集创建正确的键/图例标签,gnuplot,Gnuplot,我有大量(超过2000个)的数据文件,我想用Gnuplot绘制一幅图。每个文件包含要在同一绘图中绘图的多组数据。我使用一个Perl脚本将每个文件预处理成一个表单,由Gnuplot接收,并生成一个Gnuplot脚本,该脚本将由Perl的系统调用执行,以生成一个outplot文件。每个数据文件可能包含大约10组数据,其中每组表示另一个参数的不同值。我想用一条实线绘制每个集合,但颜色不同,并且在图例/关键点中有一个表示另一个参数值的标签。为了获得多行颜色,我目前正在重新格式化每个文件,使集合1首先出现

我有大量(超过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
我可以得到我想要的关键标签,但现在无法得到不同颜色的每一行


如果这些方法不起作用,那么这是获取密钥标签的另一种方法,这些密钥标签在不同的文件中可能不同。

您需要明确使用
索引来选择数据集,然后密钥是正确的。考虑数据文件

"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在两列数据的单列标题上存在困难。在当前的开发版本中,这不再是必需的