Как показать f.__doc__ в латексной форме с помощью matplotlib?

У меня есть следующий код:

fig = plt.figure()
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
plt.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"]
plt.suptitle(r"$\boldsymbol{f(x)=}$" + f.__doc__)
plt.plot()
plt.show()
fig.savefig("{}.pdf".format(f.__doc__), bbox_inches='tight')

и я хочу, чтобы f.документ также отображался в латексе в plt.suptitle.

Если я установлю f.__doc__ на "tan(x)-2x", я получу

Как показать f.__doc__ в латексной форме с помощью matplotlib?

и я ищу способ показать это:

Как показать f.__doc__ в латексной форме с помощью matplotlib?

Я подумал, может быть, установка f.__doc__ на \boldsymbol{\tan(x)-2x} поможет как-то, но тогда я получу длинное латексное имя файла в fig.savefig.

Есть ли способ получить латексную форму в suptitle при сохранении исходного имени файла?

Здесь могут пригодиться f-строки: plt.suptitle(f"$\\boldsymbol{{f(x) = {f.__doc__}}}$")

ImportanceOfBeingErnest 05.04.2019 19:32
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам просто нужно вставить строку в свой заголовок, прежде чем выйти из математического режима и среды \boldsymbol. Например:

plt.suptitle(r"$\boldsymbol{f(x) = " + f.__doc__ + "}$")

или

plt.suptitle(r"$\boldsymbol{{f(x) = {}}}$".format(f.__doc__))

(Обратите внимание на второй вариант, поскольку фигурные скобки используются как LaTeX, так и Python, нам нужны двойные скобки {{ }}, чтобы открывать и закрывать среду \boldsymbol).

Оба дают одинаковую цифру:

Если вы хотите, чтобы tan не был курсивом, вам нужно будет ввести обратную косую черту перед вашей строкой. Например:

plt.suptitle(r"$\boldsymbol{{f(x)=\{}}}$".format(f.__doc__))

Другие вопросы по теме