Ответ 1
Ваш пример - это именно то, как это делается, вы используете \n
. Вам нужно снять префикс r, хотя 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")
В идеале я хотел бы, чтобы у-метка была центрирована. Есть ли способ сделать это? Важно, чтобы на этикетке были оба TeX (заключены в '$') и в новую строку.
Ваш пример - это именно то, как это делается, вы используете \n
. Вам нужно снять префикс r, хотя python не рассматривает его как необработанную строку
Вы можете использовать лучшее из обоих миров: автоматическое "экранирование" команд 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"
).
plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math" + "\n" + "continues here")
Просто конкатенируйте строки с новой строкой, которая не находится в исходной строковой форме.
Следующий matplotlib python script создает текст с новой строкой
ax.text(10, 70, 'shock size \n $n-n_{fd}$')
В следующей строке нет новой строки. Обратите внимание на r перед текстом
ax.text(10, 70, r'shock size \n $n-n_{fd}$')