Gnuplot:使用来自多个数据文件的数据作为相同的绘图线

时间:2013-07-20 07:57:09

标签: gnuplot

我正在尝试生成一个gnuplot,它使用来自两个不同数据文件的数据用于相同的绘图行,如下所示:

plot 'datafile1.dat' using 1:($2/('datafile2.dat' using 2)

即。 x轴:来自datafile1.dat的第1列; y轴:( datafile1.dat的第2列)除以(datafile2.dat的第2列)

上面的语法显然是不正确的,但有没有办法使用gnuplot实现这个?

示例输入数据集如下:(两个数据文件具有相似的数据集)

nSp   Kf  
10    523276.8  
50    6915841.1  
100   24736818.3  
500   622677171.35  
1000  2892599744  
...  

我在线阅读的其他解决方案需要在使用情节之前连接datafile1.datdatafile2.dat。实际的数据文件有更多的列用于其他图,因此我希望避免这种连接。如果有人有一个让两个文件分开的备用解决方案,我将非常感激。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用paste实用程序将这两个文件合并到一个虚构文件中。 gnuplot允许使用"<"语法调用命令:

plot "< paste datafile1.dat datafile2.dat" using 1:($2/$4)

参见此示例

用这两个数据文件生成

datafile1.dat

1   1
2   2
3   3
4   4
5   5

datafile2.dat

1   3
2   6
3   5
4   4
5   7

答案 1 :(得分:1)

在5.4版中,您可以将“ data2.txt”的第二列存储到数据块中,然后将其用于绘图。

set table $divider
plot "data2.txt" using 2 with table
unset table

plot "data1.txt" using 1:($2/$divider[$0+1]) with linespoints