【发布时间】:2013-01-24 21:28:30
【问题描述】:
我正在尝试复制 scikit-learn 中的一个示例,plot_iris_dataset.py。我相信我有最新的 python-matplotlib(截至 2013 年 2 月 8 日),但尝试在 Axes3D 对象中调用 set_zticks(()) 方法时遇到错误。我不会复制所有的代码,但它是这样的:
...
ax = Axes3D(fig, elev=-150, azim=110)
...
ax.set_zticks(()
给出一个错误:
AttributeError: 'Axes3D' object has no attribute 'set_zticks'
由于我是 scikit-learn 和 matplotlib 的新手,我不太确定调用应该做什么。如果我把它注释掉,我会得到一个 3-D 图就好了(上面页面上的其余代码都有效)。我尝试了一些谷歌搜索,但还没有找到解决方法,但我得到的提示可能是这种调用已经过时了。我想我会在 stackoverflow 上发布一个问题,希望有人可以为我或其他人澄清。
编辑:我现在注意到该调用应该删除刻度线。它似乎不适用于任何方向,x、y 或 z,但我只收到 z 方向的错误。这是我的图表的显示方式(数据点由于某种原因没有保存在 PNG 文件中)
其他参考资料:
- a message thread elsewhere 说这个错误可能会在以后的版本中修复。
- this page gets a google hit 但我不明白或看不到对 zticks 的引用。
【问题讨论】:
-
matplotlib.__version__给了什么? -
并且您需要调用
plt.draw()以获得对axes对象的一些修改的效果以反映在显示中(您更改了对象的状态,但不会自动更新基于该对象的漂亮事物的状态)。 -
@tcaswell 它给出了 '1.0.1' ...我现在看到这不是最新版本。我的错误是我认为它是最新的,因为 apt-get 告诉我(我还是 linux / 等的新手)。我将尝试升级到 1.2 并报告。如果您很快看到这一点:除了 apt-get,最好的升级方式是什么?我试试点子。谢谢!
-
sudo pip install matplotlib --upgrade 似乎工作正常,我会检查它是否修复了一些问题。
-
您应该添加最后一条评论作为答案并接受(当它允许时)您自己的答案。
标签: python matplotlib scikit-learn