Comment puis-je ajouter une nouvelle ligne à l'étiquette d'un tracé (par exemple xlabel ou ylabel) dans matplotlib? Par exemple,
plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math \n continues here")
Idéalement, je voudrais que le libellé y soit également centré. Y a-t-il un moyen de faire cela? Il est important que l'étiquette contienne à la fois TeX (entouré de '$') et la nouvelle ligne.
Votre exemple est exactement comment c'est fait, vous utilisez \n
. Vous devez cependant retirer le préfixe r donc python ne le traite pas comme une chaîne brute
Vous pouvez avoir le meilleur des deux mondes: "échappement" automatique des commandes LaTeX et sauts de ligne:
plt.ylabel(r"My long label with unescaped {\LaTeX} $\Sigma_{C}$ math"
"\n" # Newline: the backslash is interpreted as usual
r"continues here with $\pi$")
(au lieu d'utiliser trois lignes, la séparation des chaînes par des espaces simples est une autre option).
En fait, Python concatène automatiquement les littéraux de chaîne qui se suivent et vous pouvez mélanger des chaînes brutes (r"…"
) et des chaînes avec interpolation de caractères ("\n"
).
plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math" + "\n" + "continues here")
Concatène simplement les chaînes avec une nouvelle ligne qui n'est pas sous forme de chaîne brute.
Le script matplotlib suivant python crée du texte avec une nouvelle ligne
ax.text(10, 70, 'shock size \n $n-n_{fd}$')
Ce qui suit n'a pas de nouvelle ligne. Remarquez le r avant le texte
ax.text(10, 70, r'shock size \n $n-n_{fd}$')