2

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

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

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

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

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

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

我在网上阅读的其他解决方案需要在使用情节之前datafile1.dat和之前进行串联。datafile2.dat实际数据文件有更多用于其他绘图的列,因此我希望避免这种连接。如果有人有将两个文件分开的替代解决方案,我将不胜感激。

谢谢!

4

2 回答 2

4

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
于 2013-07-20T10:02:07.877 回答
2

在 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
于 2020-10-24T01:42:38.750 回答