2014-03-24 28 views
1

有人可以看看這段代碼。我必須做3個竇軸樣本。Python - 軸和plt.figure()

import matplotlib.pyplot as plt 
import numpy as np 

t = np.arange(0.0, 2.0, 0.01) 
fig = plt.figure() 

ax1 = fig.add_subplot(311) 
y1 = np.sin(2*np.pi*t) 
ax1.plot(t, y1); 
ax1.grid(True) 
ax1.set_ylabel('1 Hz'); 

ax2 = fig.add_subplot(312) 
y2 = np.sin(4*np.pi*t) 
ax2.plot(t, y2); 
ax2.grid(True) 
ax2.set_ylabel('4 Hz'); 

ax3 = fig.add_subplot(313) 
y3 = np.sin(6*np.pi*t) 
ax3.plot(t, y3); 
ax3.grid(True) 
ax3.set_ylabel('6 Hz'); 

plt.show() 

有人可以說我爲什麼這段代碼什麼都不做?我只看到「圖1」,就這些。

索裏,我的英語:d

+0

該代碼適用於我的預期。也許你的設置有一些有趣的東西。 – JoshAdel

+0

因爲你只做一個數字。你應該看到有三個子圖的圖。 – tacaswell

+0

我將你的代碼複製到一個Windows python(Enthought Canopy)中,並且三個子圖都正確顯示。分別檢查每一個。 – sabbahillel

回答

0

嘗試plt.show()前添加fig.canvas.draw()

傳統意義上fig.canvas.draw()做實際繪圖,plt.show()進入交互式事件循環。當使用IPython或交互式解釋器時,在每個命令之後,ion()ioff()切換更新。

Interstingly您的代碼在我的計算機上執行它的操作(Debian不穩定) - 這可能是因爲新的Matplotlib版本改變了此行爲。

+0

現在沒關係。感謝:D – user1765664