我有2个dat文件:
a.dat
#Xs
100 25
200 56
300 75
400 67
b.dat
#Xs
100 65
200 89
300 102
400 167
Run Code Online (Sandbox Code Playgroud)
我想在gnuplot中绘制一个图形,其中yy值分别是a.dat和b.dat值之间的比率.例如,25/65,56/89,75/102和67/167.
我是怎么做到的 我只知道制作一个这样的情节,而不是比例.
plot "a.dat" using 1:2 with linespoints notitle
"b.dat" using 1:2 with linespoints notitle
Run Code Online (Sandbox Code Playgroud)
Chr*_*oph 16
您无法在单个using语句中组合来自两个不同文件的数据.您必须将这两个文件与外部工具组合在一起.
最简单的方法是使用paste:
plot '< paste a.dat b.dat' using 1:($2/$4) with linespoints
Run Code Online (Sandbox Code Playgroud)
对于独立于平台的解决方案,您可以使用例如以下python脚本,在这种情况下执行相同的操作:
"""paste.py: merge lines of two files."""
import sys
if (len(sys.argv) < 3):
raise RuntimeError('Need two files')
with open(sys.argv[1]) as f1:
with open(sys.argv[2]) as f2:
for line in zip(f1, f2):
print line[0].strip()+' '+line[1],
Run Code Online (Sandbox Code Playgroud)
然后打电话
plot '< python paste.py a.dat b.dat' using 1:($2/$4) w lp
Run Code Online (Sandbox Code Playgroud)