我正在尝试生成一个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.dat
和datafile2.dat
。实际的数据文件有更多的列用于其他图,因此我希望避免这种连接。如果有人有一个让两个文件分开的备用解决方案,我将非常感激。
谢谢!
答案 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