2016-03-07 134 views
0

我是一名新手,我試着練習基本操作。這是繪製二維高斯分佈的代碼。我在matplotlib中有錯誤。我該如何解決這個問題?在numpy上繪製2D高斯

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

X,Y=np.meshgrid(np.linspace(-1,1,10),np.linspace(-1,1,10)); 
mu,sigma=0,1; #suppose that mux=muy=mu=0 and sigmax=sigmay=sigma 
G=np.exp(-((X-mu)**2+(Y-mu)**2)/2.0*sigma**2) 
print G 
fig=plt.figure(); 
ax=fig.add_subplot(111,projection='3d') 
surf=ax.plot_surface(X,Y,G,c='red') 
plt.show() 

我有這樣的錯誤
文件 「/Library/Python/2.7/site-packages/mpl_toolkits/mplot3d/__init__.py」,4號線,在 從matplotlib.externals導入6個 導入錯誤:沒有名爲外部模塊

+0

如果我只是複製並粘貼上面所寫的代碼,代碼對我來說工作正常。你使用的是什麼版本的Python? – DavidG

+0

@MSeifert,怎麼樣? – Jeanne

+0

@DavidG python 2.7安裝了macport – Jeanne

回答

1

因爲我的版本,所以我懷疑你需要升級mpl_toolkits(和/或matplotlib)。

看起來matplotlib似乎不再支持較老的Python版本(並且您有更新的版本),因此不再需要externals子模塊。但是你沒有更新mpl_toolkits,它仍然認爲matplotlib有這個子模塊。因此你會得到這個錯誤。