Domanda

Come posso aggiungere una nuova linea per l'etichetta di una trama (per esempio xlabel o ylabel) in matplotlib? Ad esempio,

plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math \n continues here") 

Idealmente mi piacerebbe y-etichettati per essere centrata anche. C'è un modo per fare questo? E 'importante che l'etichetta c'hanno TeX (racchiuso in '$') e il ritorno a capo.

È stato utile?

Soluzione

Il tuo esempio è esattamente come è fatto, si usa \n. È necessario togliere il prefisso r anche se così pitone non lo tratta come una stringa grezza

Altri suggerimenti

Si può avere il meglio dei due mondi: automatico "fuga" di LaTeX comandi e nuove righe:

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$")

(invece di utilizzare tre linee, separando le stringhe di singoli spazi è un'altra opzione).

In realtà, Python concatena automaticamente stringhe letterali che si susseguono, e si può mescolare le stringhe prime (r"…") e stringhe con interpolazione carattere ("\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")

Proprio concatenare le stringhe con una nuova riga che non è in forma di stringa grezza.

Il seguente script python matplotlib crea il testo con la nuova linea

ax.text(10, 70, 'shock size \n $n-n_{fd}$')

Di seguito non ha nuova linea. Si noti la r prima del testo

ax.text(10, 70, r'shock size \n $n-n_{fd}$')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top