Je veux donner à mon graphique un titre en gros caractères de 18pt, puis un sous-titre en dessous en caractères plus petits de 10pt. Comment puis-je faire cela dans matplotlib? Il semble que la fonction title()
ne prend qu'une seule chaîne de caractères avec un attribut de fontsize
. Il doit y avoir un moyen de le faire, mais comment?
Réponses
Trop de publicités?Ceci est un exemple de code pandas qui implémente la réponse de Floris van Vugt (20 décembre 2010). Il a dit:
>Ce que je fais, c'est utiliser la fonction title() pour le sous-titre et suptitle() pour le titre principal (ils peuvent prendre différents arguments de taille de police). J'espère que cela aide!
import pandas as pd
import matplotlib.pyplot as plt
d = {'série a': pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'série b': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
chaîne_de_titre = "Ceci est le titre"
chaîne_de_sous_titre = "Ceci est le sous-titre"
plt.figure()
df.plot(kind='bar')
plt.suptitle(title_string, y=1.05, fontsize=18)
plt.title(subtitle_string, fontsize=10)
Note : Je n'ai pas pu commenter cette réponse car je suis nouveau sur stackoverflow.
Je ne pense pas qu'il y ait quelque chose de intégré, mais vous pouvez le faire en laissant plus d'espace au-dessus de vos axes et en utilisant figtext
:
axes([.1,.1,.8,.7])
figtext(.5,.9,'Foo Bar', fontsize=18, ha='center')
figtext(.5,.85,'Lorem ipsum dolor sit amet, consectetur adipiscing elit',fontsize=10,ha='center')
ha
est l'abréviation de horizontalalignment
.
La solution qui a fonctionné pour moi est :
- utilisez
suptitle()
pour le titre actuel -
utilisez
title()
pour le sous-titre et ajustez-le en utilisant le paramètre optionnely
:import matplotlib.pyplot as plt """ du code ici """ plt.title('Mon sous-titre',fontsize=16) plt.suptitle('Mon titre',fontsize=24, y=1) plt.show()
Il peut y avoir un chevauchement désagréable entre les deux morceaux de texte. Vous pouvez corriger cela en jouant avec la valeur de y
jusqu'à ce que vous obteniez le bon résultat.