Помещение новой строки в matplotlib маркирует TEX в Python?

Как я могу добавить новую строку к маркировке графика (например, xlabel или ylabel) в matplotlib? Например,

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

Идеально я хотел бы, чтобы y-labeled центрировался также. Существует ли способ сделать это? Важно, чтобы маркировка имела оба TEX (включенный в '$') и новая строка.

61
задан BrechtDeMan 9 March 2016 в 14:31
поделиться

2 ответа

Ваш пример именно так, как это сделано, вы используете \ n . Вам нужно убрать префикс r, чтобы python не рассматривал его как необработанную строку

33
ответ дан 24 November 2019 в 17:10
поделиться

У вас есть лучшее из обоих миров: автоматическое «экранирование» команд LaTeX и новые строки:

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

(вместо использования три строки, разделение строк одним пробелом - еще один вариант).

Фактически, Python автоматически объединяет строковые литералы, следующие друг за другом, и вы можете смешивать необработанные строки ( r "…" ) и строки с интерполяцией символов ( «\ n» ).

88
ответ дан 24 November 2019 в 17:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: