Quelles sont les différences entre add_axes et add_subplot?
Dans un précédent réponse il m'a été recommandé d'utiliser add_subplot
au lieu de add_axes
pour afficher les axes correctement, mais la recherche de la documentation, je ne pouvais pas comprendre quand et pourquoi je devrais utiliser une de ces fonctions.
Quelqu'un peut-il expliquer les différences?
OriginalL'auteur Ivan | 2017-04-10
Vous devez vous connecter pour publier un commentaire.
De raisons communes
À la fois,
add_axes
etadd_subplot
ajouter un axes d'une figure. Ils reviennent tous les deux unmatplotlib.axes.Axes
objet.Cependant, le mécanisme qui est utilisé pour ajouter les axes diffère sensiblement.
add_axes
L'appel de la signature de
add_axes
estadd_axes(rect)
, oùrect
une liste[x0, y0, width, height]
indiquant le point inférieur gauche de la les nouveaux axes de la figure coordonnées(x0,y0)
et sa largeur et sa hauteur. Donc, les axes se positionne en coordonnées absolues sur la toile. E. g.lieux une figure de la toile qui est exactement aussi grande que la toile elle-même.
add_subplot
L'appel de la signature de
add_subplot
ne fournit pas directement la possibilité de placer les axes à une position prédéfinie. Il permet plutôt de préciser les axes doit être situé, selon une intrigue secondaire de la grille. L'habitude et de la façon la plus simple de spécifier cette position est le 3 entier notation,Dans cet exemple, une nouvelle axes est créé lors de la première position (
1
) sur une grille de 2 lignes et 3 colonnes. Pour produire un seul axes,add_subplot(111)
serait utilisé (d'Abord sur la parcelle d'un 1 par 1 intrigue secondaire de la grille).L'avantage de cette méthode est que matplotlib prend en charge le positionnement exact. Par défaut
add_subplot(111)
de produire un des axes positionnés à[0.125,0.11,0.775,0.77]
ou similaires, ce qui déjà laisse suffisamment d'espace autour des axes pour le titre et le (cocher)les étiquettes. Cependant, cette position peut également changer en fonction d'autres éléments dans l'intrigue, les titres, etc.Il peut également être réglée à l'aide de
pyplot.subplots_adjust(...)
oupyplot.tight_layout()
.Dans la plupart des cas,
add_subplot
serait la méthode préférée pour créer des axes pour des parcelles sur une toile. Seulement dans les cas où le positionnement exact des questions,add_axes
pourrait être utile.Exemple
Alternative
La façon la plus simple d'obtenir un ou plusieurs sous-intrigues avec leurs poignées est
plt.sous-intrigues()
. Pour l'un des axes, l'utilisationou, si plusieurs sous-intrigues sont nécessaires,
La question initiale
Dans le la question initiale un des axes a été placé à l'aide de
fig.add_axes([0,0,1,1])
, telle qu'elle est serrée à la figure limites. L'inconvénient est bien sûr que les tiques, ticklabels, axes, les étiquettes et les titres sont coupés. Donc je l'ai suggéré dans un commentaire à la réponse à l'utilisationfig.add_subplot
que cela va automatiquement offrir suffisamment d'espace pour ces éléments, et, si ce n'est pas assez, peut être ajustée à l'aide depyplot.subplots_adjust(...)
oupyplot.tight_layout()
.OriginalL'auteur ImportanceOfBeingErnest