不幸的是,你現在的數據文件設置沒有辦法做到這一點。你可以不連接使用every
(e
)關鍵字點一個情節:
plot for [i=0:NPOINTS-1] 'test.dat' e ::i::i w p
但是,這不是非常有幫助真的,如果你想要的數據集連接,你需要「反轉」您的數據。我會使用python
因爲它是超級簡單:
#pythonscript.py
import sys #allow us to get commandline arguments
#store data as
#[[x1(t=0) y1(t=0),x2(t=0) y2(t=0),x3(t=0) y3(t=0),...],
# [x1(t=1) y1(t=2),x2(t=2) y2(t=2),x3(t=2) y3(t=2),...],
# ...
# [x1(t=N) y1(t=N),x2(t=N) y2(t=N),x3(t=N) y3(t=N),...],
#]
with open(sys.argv[1]) as fin:
data = []
current = []
data.append(current)
for line in fin:
line = line.rstrip()
if line:
current.append(line)
else:
current = []
data.append(current)
#now transpose the data an write it out. `zip(*data)` will give you:
#[(x1(t=0) y1(t=0),x1(t=1) y1(t=1),x1(t=2) y3(t=2),...),
# (x2(t=0) y2(t=0),x2(t=1) y2(t=1),x2(t=2) y2(t=2),...),
# ...
# (xN(t=0) yN(t=0),xN(t=1) yN(t=1),xN(t=2) yN(t=2),...),
#]
for lst in zip(*data):
for dpoint in lst:
print dpoint
print
對於我來說,給定的輸入文件(test.dat
):
x1(t=0) y1(t=0)
x2(t=0) y2(t=0)
xn(t=0) yn(t=0)
x1(t=1) y1(t=1)
x2(t=1) y2(t=1)
xn(t=1) yn(t=1)
x1(t=p) y1(t=p)
x2(t=p) y2(t=p)
xn(t=p) yn(t=p)
運行python pythonscript.test.dat
給出:
x1(t=0) y1(t=0)
x1(t=1) y1(t=1)
x1(t=p) y1(t=p)
x2(t=0) y2(t=0)
x2(t=1) y2(t=1)
x2(t=p) y2(t=p)
xn(t=0) yn(t=0)
xn(t=1) yn(t=1)
xn(t=p) yn(t=p)
現在你可以繪製使用the solution by andyras:
plot for [i=0:NP] '< python pythonscript.py data.dat' index i w lp
實際上,我想在每個時間步中鏈接對應於粒子i的點。在這種情況下,'with linespoints'選項將鏈接來自同一個塊的點。 – FrenSH
我明白了,我誤解了你的指數。 – andyras