我有約10個相應的輸入文件列表,其中包含分隔標籤數據列約300行/數據點。Python - 多重文件的圖形內容
我正在尋找繪製每組數據的內容,以便我對每組數據都有一個簡單的x vs(y1,y2,y3,...)和一個是由函數轉換,例如x vs(f(y1),f(y2),f(y3),...)。
我不知道,以達到它的最佳方式,我想過使用文件名的簡單數組,那麼可能不知道如何來存儲它們所有,而不覆蓋數據 - 這樣的事情:
import numpy as np
import matplotlib.pyplot as plt
def ReadDataFile(file):
print (file)
x,y = np.loadtxt(file, unpack=True, usecols=(8,9))
return x, y
inputFiles = ['data1.txt','data2.txt','data2.txt',...]
for file in inputFiles:
x1,y1 = ReadDataFile(file) ## ? ##
p1,q1 = function(x1,y1) ## ? ##
plt.figure(1)
plt.plot(x1,y1)
plt.plot(x2,y2)
...
# plt.savefig(...)
plt.figure(2)
plt.plot(p1,q1)
plt.plot(p2,q2)
...
# plt.savefig(...)
plt.show()
我想我的問題是如何最好地讀取和存儲所有的數據,並保持訪問它的能力,而無需將所有代碼放在readloop中。我可以將兩個數據集讀入成對的列表嗎?這是Python中的一件事嗎?如果是這樣,我該如何訪問它們?
在此先感謝您的幫助! 此致敬禮!
如何讀取每個數據文件並將它們放入字典?這對你有用嗎? – gabra
您可以將數據保存在一個數組中,並使用'np.hstack()'來加入數據(每個x一個col,每個y一個),並將連接的數組繪製爲一個plot對象內的子圖。我發現'GridSpec'對此非常好。 – Andrew
@gabra 我必須說我根本沒有使用字典......但我的理解是他們存儲鍵值對,我想有點像C++地圖嗎? 「價值」條目可以成爲一個列表? ie:key1 ='x1',value1 = [... x1 values list ...] with key2 ='y2'and value2'= [... y1 values list ...] 這似乎有點笨重對我來說!我覺得必須有更優雅的解決方案? – Pete