2016-06-08 49 views
1

嗨我想繪製兩個.dat文件在同一圖上的數據。 當我嘗試時,我收到一條錯誤消息。我在代碼中確切地顯示它來自哪裏。它必須處理字符串或文件句柄。我對Python非常陌生,不知道如何解決這個問題。繪製2 .dat文件,字符串文件句柄錯誤

我導入兩個.dat文件,它們都是具有2列的文件。 然後,我用指定的字體大小定義我的x,y軸的名稱,然後對標題執行相同的操作。然後我嘗試在一個圖上繪製兩個.dat文件。

import numpy as np 
from matplotlib import pyplot as plt 

fig = plt.figure() 

#unpack file data 

dat_file = np.loadtxt("file1.dat", unpack=True) 
dat_file2 = np.loadtxt("file2.dat", unpack=True) 

plt.xlabel('$x$', fontsize = 14) 
plt.ylabel('$y$', fontsize = 14) 
plt.title('result..', fontsize = 14) 

plot1 = plt.plotfile(*dat_file, linewidth=1.0, marker = 'o') #error message from this line 
plot2 = plt.plotfile(*dat_file2, linewidth=1.0, marker = 'v') #error message from this line 

plt.plotfile([plot1,plot2],['solution 1','solution 2']) 

plt.show() 

非常感謝您的幫助。

回答

1

您有plot功能繪製:

... 
plot1 = plt.plot(*dat_file, linewidth=1.0, marker = 'o', label='solution 1') 
plot2 = plt.plot(*dat_file2, linewidth=1.0, marker = 'v', label='solution 2') 
ax = plt.gca() 
ax.legend(loc='best') 
plt.show() 

enter image description here

plotfile需要設置一個分隔符(默認爲 '')和文件名不是數組,你必須這樣寫:

plot1 = plt.plotfile("file1.dat", linewidth=1.0, marker = 'o', delimiter=' ', newfig=False, label='solution 1') 
plot2 = plt.plotfile("file2.dat", linewidth=1.0, marker = 'v', delimiter=' ', newfig=False, label='solution 2') 
plt.title("Result") 
plt.xlabel('$x$', fontsize = 14) 
plt.ylabel('$y$', fontsize = 14) 
ax = plt.gca() 
ax.legend(loc='best') 
plt.show()  

newfig=False控制在新圖上繪製數據或不繪製數據。

+0

謝謝,讓我通讀所有細節!對此,我真的非常感激。如果我有問題,我會在這裏發帖。 –

+0

一切正常,我可以按照你做的。非常感謝這方面的解釋和幫助。 –