2009-10-01 6 views
4

J'ai une parcelle de deux boxplots dans la même figure. Pour des raisons de style, l'axe doit avoir la même longueur, de sorte que la boîte graphique est au carré. J'ai essayé d'utiliser la méthode set_aspect, mais les axes sont trop différents au moyen de la plage et le résultat est fantastique.Boxplot carré Matplotlib

Est-il possible d'avoir un axe 1: 1 même s'ils n'ont pas le même nombre de points?

Merci

F.

Répondre

4

Essayez axis('equal'). Ça fait longtemps que je n'ai pas travaillé avec matplotlib, mais il me semble que je me souviens avoir beaucoup écrit cette commande.

4

Vous pouvez utiliser Axes.set_aspect pour ce faire si vous définissez l'aspect sur le rapport des limites d'axes. Voici un exemple: alt text http://i37.tinypic.com/b6u9zs.png

from matplotlib.pyplot import figure, show 

fig = figure() 

ax0 = fig.add_subplot(1,2,1) 
ax0.set_xlim(10., 10.5) 
ax0.set_ylim(0, 100.) 
ax0.set_aspect(.5/100) 

ax1 = fig.add_subplot(1,2,2) 
ax1.set_xlim(0., 1007) 
ax1.set_ylim(0, 12.) 
x0, x1 = ax1.get_xlim() 
y0, y1 = ax1.get_ylim() 
ax1.set_aspect((x1-x0)/(y1-y0)) 

show() 

Il peut y avoir un moyen plus facile, mais je ne sais pas.

+0

C'est un bon point de départ. Merci! –

+0

De rien. – tom10

1

Placettes loglog (loglog()) ne pas oublier d'utiliser

ax1.set_aspect(log10(xmax/xmin)/log10(ymax/ymin)) 
Questions connexes