我有这些数据:
0 0.105773
1 -0.062457
2 0.005387
3 -0.000000
4 -0.000000
5 0.000000
6 0.000000
7 0.000000
0 0.116266
1 -0.129877
2 0.004714
3 -0.000000
4 -0.000000
5 0.000000
6 0.000000
7 0.000000
第一列中的每个不同值都应该是图中的一条线,因此图形将有8条线。我需要一个历史图表,每次这8个数字重复它将表示X轴上的增量,第二列上的值表示Y轴上的时间点。
有没有办法用gnuplot做到这一点?我不知道如何让它以日志的方式解释数据。
答案 0 :(得分:2)
你需要将数据打成gnuplot喜欢的格式。我喜欢使用python,这是一个应该做的技巧:
import sys
from collections import defaultdict
fname = sys.argv[1]
with open(fname) as fin:
data = defaultdict(list)
for line in fin:
x,y = line.split()
data[int(x)].append(float(y))
for k,v in sorted(data.items()):
for i,elem in enumerate(v):
print i,elem
print
print
你可以像这样绘制数据文件:
plot '<python pythonscript.py data.dat' u 1:2:(column(-2)) w lines lc variable lw 3
或者,如果您需要稍微调整图例中的数据:
plot for [i=0:10] '<python pythonscript.py test.dat' index i u 1:2 w lines lw 3 title sprintf('Geophone %d',i)
其中10
只是一个足够大的数字: - )。