Deuxième nom de l'axe y se couper
Je suis en train de tracer les deux ensembles de données dans un graphique à barres avec matplotlib, donc je suis en utilisant deux axes avec le twinx()
méthode. Cependant, le deuxième axe y de l'étiquette est coupée. J'ai essayé différentes méthodes, sans succès (tight_layout()
, réglage de la major_pad
s dans rcParams
, etc...). Je pense que la solution est simple, mais je n'ai pas trouver encore.
Voici un MWE:
#!/usr/bin/env python
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.rcParams.update({'font.size': 21})
ax = plt.gca()
plt.ylabel('Data1') #Left side
ax2 = ax.twinx()
for i in range(10):
if(i%2==0):
ax.bar(i,np.random.randint(10))
else:
ax2.bar(i,np.random.randint(1000),color='k')
plt.ylabel('Data2') #Right
côté
plt.savefig("test.png")
Vous devez vous connecter pour publier un commentaire.
Je viens de comprendre: l'astuce est d'utiliser
bbox_inches='tight'
danssavefig
.E. G.
plt.savefig("test.png",bbox_inches='tight')
tight_layout
.plt.tight_layout()
ne pas faire l'affaire pour moi... Merci!plt.autoscale()
trop...plt.autoscale()
coupe trop. J'utilise la version 1.1.1, si cela aide.J'ai rencontré le même problème qui
plt.tight_layout()
n'a pas de résoudre automatiquement.Au lieu de cela, j'ai utilisé le labelpad argument en
ylabel
/set_ylabel
en tant que tel:ax.set_ylabel('label here', rotation=270, color='k', labelpad=15)
Je suppose que cela n'a pas été mis en œuvre lorsque vous avez posé cette question, mais comme il est le premier résultat sur google, j'espère que ça peut aider les utilisateurs de l'actuel matplotlib version.