pyplot: étendre la marge au bas d'une figure

La capture d'écran suivante montre mon xaxis. J'ai ajouté quelques étiquettes et pivoté de 90 degrés afin de mieux les lire. Cependant, typlot tronque le fond de sorte que je ne suis pas en mesure de lire complètement les étiquettes. Comment étendre la marge inférieure pour voir les étiquettes complètes?

enter image description here

12
demandé sur toom 2015-01-10 19:06:45

3 réponses

Deux rétroactif façons:

fig, ax = plt.subplots()
# ...
fig.tight_layout()

Ou

fig.subplots_adjust(bottom=0.2) # or whatever

Voici un http://matplotlib.org/examples/pylab_examples/subplots_adjust.html

(mais je préfère tight_layout)

23
répondu Paul H 2015-01-10 17:19:54

une solution rapide à une ligne qui a fonctionné pour moi est d'utiliser l'auto de pyplot tight_layout méthode directement, disponible en Matplotlib v1.À partir de 1:

plt.tight_layout()

ceci peut être invoqué immédiatement avant vous montrer le tracé (plt.show()), mais après vos manipulations sur les axes (par ex. rotations de la ticklabel, etc.).

cette méthode de commodité évite de manipuler des figures individuelles de sous-lots.

où plt est le standard pyplot de: import matplotlib.pyplot as plt

3
répondu chinnychinchin 2017-03-28 21:11:31

Subplot-adjusted n'a pas fonctionné pour moi, puisque la figure entière serait simplement redimensionner avec les étiquettes encore hors limite.

une solution que j'ai trouvée était de garder l'axe des y toujours une certaine marge au-dessus des valeurs y les plus élevées ou minimales:

x1,x2,y1,y2 = plt.axis()
plt.axis((x1,x2,y1 - 100 ,y2 + 100))
2
répondu rainer 2016-10-16 21:57:55