2013-01-03 609 views
1

我試圖用Python的matplotlib.pyplot子圖解繪製數據集U(x,t)和V(x,t)。我想手動設置第一次要情節的軸,而第二次要情節可以選擇自己的軸:在pyplot subplots中固定座標軸的範圍

import matplotlib.pyplot as plt 

plt.subplot(121) 
plt.pcolor(xx,tt,U) 
plt.colorbar() 
plt.axes([0,600,0,100]) 
plt.subplot(122) 
plt.pcolor(xx,tt,V) 
plt.colorbar() 
plt.show() 

然而,這似乎對改變第一次要情節的軸沒有影響。此外,情節生成後,我得到了廣泛的錯誤:

Exception in Tkinter callback 
... 
... 
raise LinAlgError('Singular matrix') 
numpy.linalg.linalg.LinAlgError: Singular matrix 

當我從代碼中刪除上述繪圖命令,然而,錯誤消失。有什麼想法嗎?

+0

你能分享給XX,TT,U&V一些示例數據?所以我們可以嘗試運行你的例子。 –

+0

當然!作爲一個例子: '從numpy的進口*',' XX =人氣指數(0,700,30)',' TT =人氣指數(0,100,5)',' U =外(XX,TT)', 'V =外(xx **(1/2),tt/4)'。由於某種原因,我不再得到這個錯誤,但情節仍然是錯誤的。謝謝! – Doubt

+0

太好了,謝謝。有了這個示例數據,我得到了「形狀不匹配」的錯誤。在下面的答案中注意我在'pcolor'函數調用中翻轉'xx'&'tt'命令來爲我修復它。 –

回答

1

,而不是試圖設置軸本身,你可以嘗試調整XLIM和ylim屬性,而不是:

import matplotlib.pyplot as plt 
from numpy import * 
xx = arange(0,700,30) 
tt = arange(0,100,5) 
U = outer(xx,tt) 
V = outer(xx**(1/2),tt/4) 
plt.subplot(121) 
plt.pcolor(tt,xx,U) 
plt.colorbar() 
#plt.axes([0,600,0,100]) 

plt.xlim(0,100) 
plt.ylim(0,600) 

plt.subplot(122) 
plt.pcolor(tt,xx,V) 
plt.colorbar() 

plt.show() 

Script Output

+0

完美,謝謝克里斯! – Doubt