2016-03-07 135 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有这个子模块。因此你会得到这个错误。