2013-02-09 482 views
2

我试图在scikit-learn中复制其中一个示例,plot_iris_dataset.py。我相信我有最新的python-matplotlib(截至2013年2月8日),但是我在尝试在Axes3D对象中调用set_zticks(())方法时出现错误。我不会复制所有的代码,但它是像这样:python-matplotlib AttributeError Axes3D对象没有属性set_zticks

... 
ax = Axes3D(fig, elev=-150, azim=110) 
... 
ax.set_zticks(() 

给出了一个错误:由于我是新来的scikit学习和matplotlib

AttributeError: 'Axes3D' object has no attribute 'set_zticks' 

,我真的不知道电话应该做什么。如果我将它评论出来,我会得到一个三维绘图(上面的其他代码工作)。我尝试了一些Google搜索,但还没有找到解决方法,但我得到的暗示可能这种呼叫已过时。我想我会发布一个问题在stackoverflow希望有人可以为我或其他人澄清。

编辑:我现在注意到,该电话应该删除刻度线。它似乎不适用于任何方向,x,y或z,但我只能得到z方向的误差。下面是如何出现在我的图(数据点没有在PNG文件保存由于某种原因)My plot, notice the tick marks in all dimensions

其他参考资料:

+0

matplotlib .__ version__'给出了什么? – tacaswell 2013-02-09 03:04:22

+1

并且你需要调用'plt.draw()'来获得一些修改的效果,以便在显示中反映出'axes'对象(你改变了对象的状态,但不会自动更新基于该对象的漂亮东西)。 – tacaswell 2013-02-09 03:08:31

+0

@tcaswell它给出'1.0.1'...我现在看到那不是最新版本。我的错误是,我认为它是最新的,因为apt-get告诉我这样(我还是Linux新手等)。我会尝试升级到1.2并回报。如果你看到这样的话:除了apt-get之外,升级的最佳方式是什么?我会尝试点。谢谢! – 2013-02-09 14:58:13

回答

2

我终于得到这个问题解决了,感谢@tcaswell ......我没有经验,所以我不太清楚,到底有什么工作,但我会尽量解释:

简短的回答:更新到最新的matplotlib(从1.0.1到1.2)似乎是解决方案。

长答案:更新matplotlib并不容易!我尝试了一堆东西,所以我不知道最终工作是什么,但这里有一个总体概述:

从2013年2月9日开始,apt-get install仅获得版本1.0.1。所以,我按照matplotlib page的说明从源代码中卸载并安装。

当我尝试这个,代码编译,但我的数字窗口不会显示出来。这是由于后端问题,无法正确识别GTK(或类似的东西)。为了解决这个问题,我定制了setup.cfg文件建立matplotlib

<line 58> gtk = True 
<line 57> gtkagg = True 
<line 74> backend = GTKAgg 

然后我建立和上面页的说明编译。

注:我做了一大堆其他的事情,所以我不知道以上是最小的解决方案。

+0

http://stackoverflow.com/questions/14803044/matplotlib-animation-moviewriters-fails-on-ubuntu-12-04/14806555#14806555看到这个答案为我如何处理这(第三次后,我看到了相同的问题我终于回答了....) – tacaswell 2013-02-11 05:46:55

相关问题