当参数是传递给format()函数的变量时,如何标记图的y轴?

问题描述 投票:0回答:1

在每次运行我的代码时,我正在制作许多绘图,其y轴的标签从一个绘图到下一个绘图略有不同。由于我的代码很长,我更喜欢用单次运行生成所有图,使得标签的相同部分是先验已知的。我试图在python中使用format()函数为给定此已知值的每个绘图打印标签。由于我在我的轴标签内使用Latex符号,我不知道如何解决这个问题。

z_value = 0.
ax.set_ylabel(r'$\frac {dN_{{abs.}}} {d [\log(m_{{sub}})]} (m_{{sub}}, z={:.1f})$'.format(z_value))

错误:

ax.set_ylabel(r'$ \ frac {dN _ {{abs。}}} {d [\ log(m _ {{sub}})]}(m _ {{sub}},z = {:。1f})$ ” .format(z_value))

ValueError:字段名称中的意外“{”

string python-3.x matplotlib string-formatting axis-labels
1个回答
1
投票

您需要将每个{和}加倍,而不是用作格式指示符。你还需要逃避反斜杠:

>>> x=2.5
>>> print('Dies ist {{{}x eine Variable'.format(x))
Dies ist {2.5x eine Variable

>>> print('$\\frac {{dN_{{abs.}}}} {{d [\\log(m_{{sub}})]}} (m_{{{{sub}}}}, z={:.1f})$'.format(x))
$\frac {dN_{abs.}} {d [\log(m_{sub})]} (m_{{sub}}, z=2.5)$
© www.soinside.com 2019 - 2024. All rights reserved.