在 numpy 上绘制二维高斯
Plot a 2D gaussian on numpy
我是numpy的新手,正在尝试练习基本操作。这是绘制二维高斯分布的代码。我在 matplotlib 中有一个错误。我该如何解决?
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 导入六个
ImportError:没有名为 externals
的模块
因为我的版本有效,所以我怀疑您需要升级 mpl_toolkits
(and/or matplotlib
)。
似乎 matplotlib
放弃了对旧 Python 版本的支持(并且您有更新的版本),因此不再需要 externals
子模块。但是你没有更新 mpl_toolkits
仍然认为 matplotlib 有这个子模块。因此你得到了这个错误。
我是numpy的新手,正在尝试练习基本操作。这是绘制二维高斯分布的代码。我在 matplotlib 中有一个错误。我该如何解决?
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 导入六个
ImportError:没有名为 externals
因为我的版本有效,所以我怀疑您需要升级 mpl_toolkits
(and/or matplotlib
)。
似乎 matplotlib
放弃了对旧 Python 版本的支持(并且您有更新的版本),因此不再需要 externals
子模块。但是你没有更新 mpl_toolkits
仍然认为 matplotlib 有这个子模块。因此你得到了这个错误。