Dans matlab, il est simple d'obtenir et de définir la position d'un axe existant sur la figure:
pos = get(gca(), 'position')
set(gca(), 'position', pos)
Comment faire cela dans Matplotlib?
J'en ai besoin pour deux raisons liées:
Ce sont les problèmes spécifiques que j'essaie de résoudre:
J'ai une colonne de sous-parcelles où certaines ont des barres de couleur et d'autres pas, et elles n'ont pas la même largeur, c'est-à-dire que les axes X ne s'alignent pas. La barre de couleur vole l'espace des axes. Cela se produit également dans matlab, et là j'utiliserais l'astuce ci-dessus pour rendre tous les axes également larges en copiant la largeur d'un axe avec une barre de couleur à ceux sans.
ajouter de l'espace entre les sous-parcelles individuelles en réduisant les axes. La fonction adjust_subplots () ajuste tous les sous-tracés de la même manière.
Le réglage de la position des axes est similaire dans Matplotlib. Vous pouvez utiliser les méthodes get_position et set_position des axes.
import matplotlib.pyplot as plt
ax = plt.subplot(111)
pos1 = ax.get_position() # get the original position
pos2 = [pos1.x0 + 0.3, pos1.y0 + 0.3, pos1.width / 2.0, pos1.height / 2.0]
ax.set_position(pos2) # set a new position
Vous pouvez également jeter un œil à GridSpec si vous ne l'avez pas déjà fait.