2016-05-15 1 views
1

ai créé un système d'intrigues secondaires dans une figure avecPuis-je déplacer les axes dans un sous-champ matplotilb? Une fois que je

 fig, ((ax1, ax2)) = plt.subplots(1, 2) 

je peux jouer avec la position de ax2, par exemple, en déplaçant un peu vers la droite ou la gauche? En d'autres termes, puis-je personnaliser la position d'un objet d'axe dans une figure après qu'il a été créé en tant qu'élément de sous-repères? Si oui, comment pourrais-je le coder?

Merci de penser le long

Répondre

1

Vous pouvez utiliser les commandes get_position et set_position comme dans cet exemple:

import matplotlib.pyplot as plt 

fig, ((ax1, ax2)) = plt.subplots(1, 2) 
box = ax1.get_position() 
box.x0 = box.x0 + 0.05 
box.x1 = box.x1 + 0.05 
ax1.set_position(box) 
plt.show() 

qui se traduit par ceci:

Shifting matplotlib subplot

Vous remarquerez que je ont utilisé les attributs x0 et x1 (premier et dernier X coordinat e de la boîte) pour décaler le tracé dans 0.05 dans cet axe. La logique s'applique à y aussi.

En fait, le décalage devrait être grand et les boîtes se chevaucheront (comme dans cette image avec un décalage de 0.2).

big shift with overlapping plots in matplotlib