4

scikit-learn の例の 1 つ、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 次元プロットが正常に表示されます (上のページの残りのコードは機能します)。私はいくつかのグーグルを試しましたが、これに対する回避策は見つかりませんでしたが、おそらくこの種の呼び出しは時代遅れであるというヒントを得ています. 誰かが私や他の人のために明確にしてくれることを期待して、stackoverflowに質問を投稿すると思いました。

編集:呼び出しが目盛りを削除することになっていることに気付きました。x、y、または z のどの方向でも機能しないようですが、z 方向のエラーのみが発生します。これが私のグラフの表示方法です(何らかの理由でデータポイントがPNGファイルに保存されていません)私のプロット、すべての次元の目盛りに注意してください

その他の参照:

4

1 に答える 1

2

@tcaswellのおかげで、ようやくこの問題を解決できました...私は経験が浅いので、結局何がうまくいったのかよくわかりませんが、説明しようとします:

簡単な回答: 最新の matplotlib (1.0.1 から 1.2 へ) への更新が解決策のようです。

長い答え: matplotlib の更新は簡単ではありませんでした! いろいろ試してみたので、うまくいったかどうかはわかりませんが、大まかな概要は次のとおりです。

2013 年 2 月 9 日の時点で、apt-get install はバージョン 1.0.1 のみを取得します。そのため、 matplotlib ページで説明されているように、ソースからアンインストールしてインストールしました。

これを試したところ、コードはコンパイルされましたが、Figure ウィンドウが表示されませんでした。これはバックエンドの問題によるもので、GTK を適切に認識していません (またはそのようなもの)。それを修正するために、matplotlib をビルドするための setup.cfg ファイルをカスタマイズしました。

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

次に、上記のページで概説したようにビルドしてコンパイルしました。

注:私は他にもたくさんのことをしたので、上記が最小の解決策であるかどうかはわかりません.

于 2013-02-09T20:04:54.617 に答える