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.
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)
il suffit de rétrograder matplotlib vers une ancienne version. Je le rétrograde à 1.4.0 et corrige le problème.
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