繪製三維相空間使用下面的腳本,它的工作方式類似於running average example從gnuplot的頁面:
reset
back4 = back3 = back2 = back1 = 0
shift(x) = (back4 = back3, back3 = back2, back2 = back1, back1 = x)
samples(x) = $0 < 3 ? NaN : x
set ticslevel 0
# the labels are only for orientation when checking the test data
set xlabel 'xlabel'
set ylabel 'ylabel'
splot 'randomdata.dat' using (shift($1), samples(back4-back3)):(samples(back3-back2)):(samples(back2-back1))
的Gnuplot必須持有四個數據值,它們存儲在back1
到back4
。對於每個新值,所存儲的值將以shift
進行移位。 samples
需要注意前三個值不被使用,但只存儲(NaN
創建一個無效的數據點)。
爲了測試它,使用這個文件randomdata.dat
:
21
15
10
6
3
1
0
這在(6,5,4)繪製四個數據點,(5,4,3),(4,3,2),和(3,2,1)。
如果你有一個二進制數據文件,例如16位號碼,使用
splot 'binaryfile' binary format="%ushort" using (shift($1), samples(back4-back3)):(samples(back3-back2)):(samples(back2-back1))
如果您需要更改命令datasize,調用gnuplot
並鍵入show datafile binary datasizes
,看看哪些格式的支持。
[This answer to the same question](http://superuser.com/questions/624631/how-do-i-use-gnuplot-to-create-a-3d-phase-space-plot)may be對你感興趣。 – Schorsch
@Schorsch:感謝您的發現! @Christoph:你的回答非常高級 - 我把你的帽子給你......') – mpy
@mpy謝謝你,知道它是否對OP有用。 – Christoph