我刚刚安装了matplotlib,并尝试运行其中的示例脚本之一。但是我遇到了下面详细描述的错误。我究竟做错了什么?
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contour(X, Y, Z, 16, extend3d=True)
ax.clabel(cset, fontsize=9, inline=1)
plt.show()
错误是
Traceback (most recent call last):
File "<string>", line 245, in run_nodebug
File "<module1>", line 5, in <module>
File "C:\Python26\lib\site-packages\matplotlib\figure.py", line 945, in gca
return self.add_subplot(111, **kwargs)
File "C:\Python26\lib\site-packages\matplotlib\figure.py", line 677, in add_subplot
projection_class = get_projection_class(projection)
File "C:\Python26\lib\site-packages\matplotlib\projections\__init__.py", line 61, in get_projection_class
raise ValueError("Unknown projection '%s'" % projection)
ValueError: Unknown projection '3d'
首先,我认为版本的mplot3D
工作方式与当前版本的有所不同。matplotlib
0.99
matplotlib
您正在使用哪个版本?(尝试运行:python -c 'import matplotlib; print matplotlib."__version__")
我猜您正在运行的是version 0.99
,在这种情况下,您需要使用稍微不同的语法或更新到的最新版本matplotlib
。
如果您正在运行version 0.99
,请尝试执行此操作,而不要使用projection
关键字参数:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d, Axes3D #<-- Note the capitalization!
fig = plt.figure()
ax = Axes3D(fig) #<-- Note the difference from your original code...
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contour(X, Y, Z, 16, extend3d=True)
ax.clabel(cset, fontsize=9, inline=1)
plt.show()
这应该工作在matplotlib
1.0.x
,还有,不只是0.99
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句