1

我有两个文件“results.dat”和“grid.dat”。

results.dat 每行包含一个不同的 y 值数据集。

1     325.5   875.4   658.7   365.5
2     587.5   987.5   478.6   658.5
3     987.1   542.6   986.2   458.7

grid.dat 包含相应的 x 值。

1     100.0   200.0   300.0   400.0

如何使用 gnuplot 将 grid.dat 绘制为 x 值,并将特定的 results.dat 行绘制为对应的 y 值?例如第 3 行:

1     100.0   987.1
2     200.0   542.6
3     300.0   986.2
4     400.0   458.7

提前致谢。

4

1 回答 1

0

这与最近的问题Gnuplot: plotting the maximum of two files非常相似。在您的情况下,仅使用 gnuplot 也是不可能的。

您需要一个外部工具来即时组合这两个文件,例如使用以下python脚本(任何其他工具也可以):

""" selectrow.py: Select a row from 'results.dat' and merge with 'grid.dat'."""
import numpy as np
import sys

line = int(sys.argv[1])       

A = np.loadtxt('grid.dat')
B = np.loadtxt('results.dat', skiprows=(line-1))[0]

np.savetxt(sys.stdout, np.c_[A, B], delimiter='\t')

然后绘制第三行results.datwith

plot '< python selectrow.py 3' w l
于 2013-09-30T17:22:31.657 回答