У меня есть следующий код:
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__
на \boldsymbol{\tan(x)-2x}
поможет как-то, но тогда я получу длинное латексное имя файла в fig.savefig
.
Есть ли способ получить латексную форму в suptitle
при сохранении исходного имени файла?
Вам просто нужно вставить строку в свой заголовок, прежде чем выйти из математического режима и среды \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__))
Здесь могут пригодиться f-строки:
plt.suptitle(f"$\\boldsymbol{{f(x) = {f.__doc__}}}$")