2012-07-21 5 views
0

J'ai un lot de graphiques qui doivent être créés en utilisant un modèle standard. Le problème est que le nombre de chiffres dans l'axe Y varie d'un ensemble à l'autre; cela cause un problème car je n'arrive pas à obtenir la mise en page pour accomdater un ylabel + les chiffres sans écrêtage.Ajustements par lots pour les graphiques matplotlib

Y a-t-il une suggestion sur la façon de choisir les valeurs correctes pour subplot_adjust, ou faire tight_layout garder le suptitle à l'esprit?

code ressemble actuellement à peu près comme ceci:

rc('text',usetex=True) 
rc('font',family='serif') 
mpl.rcParams.update({'font.size': 22}) 
fig = plt.figure(1,dpi=300,figsize=(4,4)) 
fig.suptitle(b.replace("_","-")) 
ax = fig.add_subplot(1,1,1) 
lx = 0 
for i in instances: 
    lx = max([lx,len(X[i])]) 
    plt.plot(X[i],Y[i]) 
plt.xlabel("X Label") 
plt.ylabel("Y Label") 
fig.subplots_adjust(bottom=0.1, top=0.9) # Works for some charts, not others! 
plt.savefig(b+".pdf",format="pdf") 
+0

Est-ce toutes les données dans la même gamme? Si c'est le cas, vous pouvez essayer de fixer les limites y qui rendraient les graduations (et donc le nombre de chiffres) identiques sur tous les graphiques. – tacaswell

+0

@tcaswell: Pas même légèrement; Cependant, je pense que je peux juste forcer les chiffres. Je prévois également de quadriller ces parcelles éventuellement, donc je vais aussi essayer de créer une grille de sous-parcelle directement dans matplotlib. Nous verrons ce qui fonctionne le mieux. –

+0

Avez-vous déjà réglé ce problème? – tacaswell

Répondre

0
majorFormattor = matplotlib.ticker.FormatStrFormatter('%0.1f') 
ax.yaxis.set_major_formatter(majorFormattor) 

Docs

Questions connexes