Il y a une classe de matplotlib.les axes.AxesSubplot, mais le module matplotlib.les axes n'a pas d'attribut AxesSubplot
Le code
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
print type(ax)
donne la sortie
<class 'matplotlib.axes.AxesSubplot'>
Le code
import matplotlib.axes
matplotlib.axes.AxesSubplot
soulève l'exception
AttributeError: 'module' object has no attribute 'AxesSubplot'
Pour résumer, il existe une classe matplotlib.axes.AxesSubplot
, mais le module matplotlib.axes
n'a pas d'attribut AxesSubplot
. Ce qui sur terre se passe?
Je suis en utilisant Matplotlib 1.1.0 et Python 2.7.3.
- Il y a un réel problème que vous essayez de résoudre avec cette, ou cette question est juste de la curiosité?
- Il est "juste de la curiosité". Je crois que la curiosité fait de vous un meilleur développeur.
Vous devez vous connecter pour publier un commentaire.
Heh. C'est parce qu'il n'y est pas
AxesSubplot
classe.. jusqu'à ce que l'on est nécessaire, lorsque l'on est construite à partir deSubplotBase
. Ceci est fait en peu de magie dansaxes.py
:Donc c'est fait à la volée, mais c'est une sous-classe de
SubplotBase
:matplotlib.axes._subplot_classes
: vous devriez voir{matplotlib.axes.Axes: matplotlib.axes.AxesSubplot}
. Notez que dans la fonction de fabrication de lanew_class
est ajouté à la_subplot_classes
dictionnaire.Une autre façon de voir ce que le DSM a dit:
avec le dsous méthode de résolution de l'ordre vous pouvez trouver toutes les héritages de classe.