1

私はこのデータを持っています:

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軸の増分を表し、2番目の列の値はその時間のY軸のポイントを表します。

gnuplotでこれを行う方法はありますか?ログのようにデータを解釈させる方法がわかりません。

4

1 に答える 1

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、十分に十分な大きさの数値です:-)。

于 2012-12-10T20:18:11.937 に答える