Je viens d'installer matplotlib et j'essaie d'exécuter l'un de ces exemples de scripts. Cependant, je rencontre l'erreur détaillée ci-dessous. Qu'est-ce que je fais mal?
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()
L'erreur est
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'
python
matplotlib
rectangle
la source
la source
Réponses:
Tout d' abord, je pense
mplot3D
travaillé un peu différemment dans lamatplotlib
version0.99
qu'il fait dans la version actuellematplotlib
.Quelle version utilisez-vous? (Essayez d'exécuter:
python -c 'import matplotlib; print matplotlib."__version__")
J'imagine que vous utilisez une version
0.99
, auquel cas vous devrez soit utiliser une syntaxe légèrement différente, soit mettre à jour vers une version plus récente dematplotlib
.Si vous utilisez la version
0.99
, essayez de le faire au lieu d'utiliser l'projection
argument de mot - clé:Cela devrait également fonctionner
matplotlib
1.0.x
, pas seulement0.99
.la source
from mpl_toolkits.mplot3d import Axes3D
. Ensuite, ça devrait marcher.python -c 'import matplotlib; print(matplotlib.__version__)'
2.0.2
?from mpl_toolkits.mplot3d import Axes3D
... :)Juste pour ajouter à la réponse de Joe Kington (pas assez de réputation pour un commentaire), il y a un bon exemple de mélange de tracés 2D et 3D dans la documentation à http://matplotlib.org/examples/mplot3d/mixed_subplots_demo.html qui montre projection = ' 3d 'fonctionnant en combinaison avec l'importation Axes3D.
En fait tant que l'import Axes3D est présent la ligne
tel qu'utilisé par l'OP fonctionne également. (vérifié avec matplotlib version 1.3.1)
la source
ax = fig.gca(projection='3d')
fonctionne pour moi. Au lieu deax = plt.subplot(111,projection="3d")
. J'utilise la version de2.1.0
Importez mplot3d entier pour utiliser "projection = '3d'".
Insérez la commande ci-dessous en haut de votre script. Cela devrait fonctionner correctement.
la source
Je rencontre le même problème et la réponse de @Joe Kington et @ bvanlew résout mon problème.
mais je devrais ajouter plus d'informations lorsque vous utilisez pycharm et enable
auto import
.lorsque vous formatez le code, le code
from mpl_toolkits.mplot3d import Axes3D
sera automatiquement supprimé par pycharm.alors ma solution est
et ça marche bien!
la source
# noinspection PyUnresolvedReferences
avant l'importation.Essaye ça:
la source