2017-10-10 52 views
0

我擁有的數據文件說data.txt爲,如何繪製多組來自同一個文本文件數據的matplotlib

1 10 
2 20 
3 30 
4 41 
5 49 

1 11 
2 19 
3 32 
4 37 
5 52 

注意有兩個數據集的。我想在同一個圖表中繪製它們。在gnuplot這是非常簡單的,我們只需要運行plot 'data.txt' with line,我們會得到這樣一個圖, enter image description here

其實我有相同的數據文件50組這樣的。我剛開始學習python。我想用numpymatplotlib來繪製這個數據文件。

也有類似的線程在這個論壇一樣,

How to plot data from multiple two column text files with legends in Matplotlib?

How can you plot data from a .txt file using matplotlib?

,但我找不到類似我的問題什麼。

+0

你可以顯示你的代碼嗎? – DavidG

回答

0

一個想法可以是讀取完整文件,將其拆分爲發生雙行換行的位置,.split('\n\n')並使用numpy.loadtxt讀入每個部分。

import numpy as np 
from io import StringIO 
import matplotlib.pyplot as plt 

filename="data.txt" 
with open(filename) as f: 
    data = f.read() 

data = data.split('\n\n') 

for d in data: 
    ds = np.loadtxt(StringIO(unicode(d))) 
    plt.plot(ds[:,0],ds[:,1]) 

plt.show() 
+1

'unicode'在運行'python3'時出現NameError,因爲'Python 3'將'unicode'類型重命名爲'str'。用'str'代替它後,它的工作,感謝您的幫助。 – ddas

相關問題