1. ホーム
  2. python

[解決済み] Matplotlibです。"Unknown projection '3d'"エラー

2022-01-31 15:59:11

質問

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__")

あなたが実行しているのは、バージョン 0.99 その場合、少し異なる構文を使用するか、より新しいバージョンの matplotlib .

もし、あなたがバージョン 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 .