web-dev-qa-db-fra.com

matplotlib: AttributeError: l'objet 'AxesSubplot' n'a pas d'attribut 'add_axes'

Je ne sais pas exactement comment corriger l'erreur d'attribut suivante:

AttributeError: 'AxesSubplot' object has no attribute 'add_axes'

Le problème incriminé semble lié à la façon dont j'ai organisé mon intrigue:

gridspec_layout = gridspec.GridSpec(3,3)
pyplot_2 = fig.add_subplot(gridspec_layout[2])

ax = WCSAxes(fig, [0.1, 0.1, 0.8, 0.8], wcs=wcs)
pyplot_2.add_axes(ax)

Quelqu'un sait-il comment résoudre ce problème? Merci beaucoup.

7
user3125347

Il n'y a pas beaucoup de détails sur votre question, mais je parierais une supposition. L'erreur est assez explicite. Vous ne pouvez pas add_axes à pyplot_2 car pyplot_2 est un matplotlib.axes.AxesSubplot objet et ils n'ont pas de add_axes méthode définie.

Seulement matplotlib.figure.Figure les objets ont add_axes méthode définie sur eux.

D'après ce que j'ai obtenu en parcourant brièvement la documentation officielle des WCSAxes, leur approche recommandée serait:

wcs = astropy.wcs.WCS(....)
fig = matplotlib.pyplot.figure()
pyplot_2 = fig.add_subplot(gridspec_layout[2], projection=wcs)
3
ljetibo

il suffit de rétrograder matplotlib vers une ancienne version. Je le rétrograde à 1.4.0 et corrige le problème.

0
coldestlin

Vous devez maintenant utiliser set_prop_cycle, c'est-à-dire ax.set_prop_cycle(color=['red', 'green', 'blue'])

Axes.set_color_cycle (clist) est amorti depuis la version 1.5.

https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.axes.Axes.set_prop_cycle.html

0
The Puternerd