rec*_*gle 114 python matplotlib
我刚刚安装了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()
Run Code Online (Sandbox Code Playgroud)
错误是
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'
Run Code Online (Sandbox Code Playgroud)
Joe*_*ton 108
首先,我认为mplot3D在matplotlib版本0.99中的工作方式与在当前版本的matplotlib中的工作方式略有不同.
你使用的是哪个版本?(尝试运行:mplot3D
)
我猜你正在运行0.99版本,在这种情况下你需要使用稍微不同的语法或更新到更新版本的matplotlib.
如果您运行的是0.99版本,请尝试执行此操作,而不是使用matplotlib
关键字参数:
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()
Run Code Online (Sandbox Code Playgroud)
这应该在matplotlib 1.0.x中工作,而不仅仅是0.99.
bva*_*lew 56
只是为了添加Joe Kington的答案(评论的声誉不够),在http://matplotlib.org/examples/mplot3d/mixed_subplots_demo.html的文档中有一个混合2d和3d图的好例子,其中显示了projection =' 3d'与Axes3D导入结合使用.
from mpl_toolkits.mplot3d import Axes3D
...
ax = fig.add_subplot(2, 1, 1)
...
ax = fig.add_subplot(2, 1, 2, projection='3d')
Run Code Online (Sandbox Code Playgroud)
实际上只要Axes3D导入就行了
from mpl_toolkits.mplot3d import Axes3D
...
ax = fig.gca(projection='3d')
Run Code Online (Sandbox Code Playgroud)
OP使用也有效.(使用matplotlib 1.3.1版检查)
归档时间: |
|
查看次数: |
81568 次 |
最近记录: |