2014-02-22 106 views
0

我有幾個帶有x和y值的文件,我想將它們同時繪製成一個圖形。 對於這一點,我想打一個循環,其中的程序寫入的x數據和y數據,所以,我到底有數組,它看起來像這樣:將多列文件寫入數組

results=[[x1],[y1],[x2],[y2],....] 

後來我想將所有數據繪製在一張圖中,但顏色不同。這自動。

編輯:我的代碼看起來在這樣的時刻:

#Program to show FFT intensitys of interfering waves with phase difference 
path='pah_to_files' 
files=['0pi.txt','0.25pi.txt','0.5pi.txt','0.75pi.txt','1pi.txt'] 

#read data 
for i in range (len(files)): 
    data=np.loadtxt(path+'/'+files[i], usecols=(0,1)) 
    position=data[:,0] #first column is position 
    intensity=data[:,1] #second column is intensity 

我知道,這個循環讀取這些文件,但它始終覆蓋以前的位置和強度數據。

+3

你能舉一個你的輸入的例子嗎?和你的預期產出?你到目前爲止做了些什麼?關於如何編寫一個好問題的一個很好的提示是[sscce](http://sscce.org) – zmo

+0

是否有理由讓你的數組數據看起來像這樣?如果你正在使用matplotlib繪製東西,那麼它需要一個X數組和一個單獨的Y數組。 – daveydave400

回答

0

以下行可用於popoulate在你說話的方式,結果列表中的結果應該有:

results = []; 
for x in range(10): 
    y = x*x 
    results.append([x]) 
    results.append([y]) 

print results 
1

更好的方式來完成它是zip,像這樣:

x_values = [1,2,3,4,5] 
y_values = ['a','b','c','d'] 
pairs_of_values = zip(x_values, y_values) 

現在pairs_of_values[0]將是一個元組(1,'a')

0

對不起,我現在使用Python 4天了,我想我必須更加小心列表和數組....下面的代碼解決了我讀取文件的問題。

#Program to show FFT intensitys of interfering waves with phase difference 
path='pah_to_files' 
files=['0pi.txt','0.25pi.txt','0.5pi.txt','0.75pi.txt','1pi.txt'] 

results=[] 

#read data 
for i in range (len(files)): #all files which are tortured the folloing way 
data=np.loadtxt(path+'/'+files[i], usecols=(0,1)) 

results.append(data[:,0]) #x-position 
results.append(data[:,1]) #intensity