web-dev-qa-db-fra.com

Augmenter la distance entre le titre et l'intrigue dans matplotlib?

J'ai un simple plot dans matplotlib et je voudrais augmenter la distance entre le titre et le plot (sans utiliser suptitle car ça ne marche pas sur la version que j'utilise sur un serveur). Comment faire ça ?

30
Vincent

Il ne semble pas y avoir de moyen propre de définir cela directement (mais cela pourrait valoir la peine de demander une fonctionnalité pour l'ajouter), mais le titre n'est qu'un artiste text, vous pouvez donc le contacter et le modifier.

#ax = plt.gca()
ttl = ax.title
ttl.set_position([.5, 1.05])
#plt.draw()

devrait faire l'affaire. Réglez le 1.05 à votre convenance.

34
tacaswell

Avec matplotlib 2.2+, vous pouvez utiliser l'argument de mot clé pad:

ax.set_title('Title', pad=20)

Ajustez pad jusqu'à ce que vous soyez satisfait de la position du titre de l'axe. L'avantage de cette méthode par rapport à l'utilisation de rcParams est qu'elle ne change que le titre de cet axe.

25
Thucydides411

Utilisation de rcParams:

from matplotlib import rcParams
rcParams['axes.titlepad'] = 20 

20 est le remplissage entre l'intrigue et le titre.

De https://matplotlib.org/users/customizing.html

17
bmorgan

Vous pouvez simplement passer le paramètre y dans plt.suptitle méthode:

plt.suptitle('Amazing Stats', size=16, y=1.12);      
7
CanCeylan

Une autre possibilité consiste à réduire la taille relative du tracé par rapport à la fenêtre de la figure entière. De cette façon, la distance entre le titre et l'intrigue augmente.

Avant d'afficher le tracé, c'est-à-dire avant plt.show(), écrivez la commande suivante:

#The standard value of 'top' is 0.9, tune a lower value, e.g., 0.8
plt.subplots_adjust(top=0.8) 

Cette méthode présente l'avantage sur la méthode @CanCeylan que le titre ne sort jamais de la fenêtre de la figure; car si le titre est suffisamment grand, le déplacer vers le haut via le paramètre y dans suptitle peut déplacer le titre en dehors de la figure. (comme cela m'est arrivé;))

2
loved.by.Jesus