首页 > 解决方案 > 在 Python 中使用乳胶和变量(标题 Matplotlib)

问题描述

我正在尝试在 Python(3.6) 中使用变量和乳胶表示法作为我在 Matplotlib 中的标题。

但是当我使用默认方法时,它似乎混淆了乳胶表示法的 {} 与 Python 中的变量之间的关系:

plt.title(r'E_obs and E_syn @ t={0}, $Q_i^{-1}$={1}, $\ell$={2}'.format(time, q_intr, lpath))

它没有运行,因为它似乎对 {-1} 感到困惑,试图读取它作为 .format() 中所述变量的索引。错误是:

KeyError: '-1'

经过一些研究,我尝试的是:

plt.title(f'E_obs and E_syn @ t={time}, $Q_i^{-1}$={q_intr}, $\ell$={lpath}')

它运行了,但应该在我的 Q_i 顶部的我的 -1 只是一个 - 并且 1 与 Q 处于同一水平。

有人有什么建议吗?

ps 我是这个论坛的新手,我自己提问;也欢迎任何关于此的提示

标签: pythonmatplotliblatex

解决方案


如果某些括号不应该被考虑format,那么你应该把它们加倍(例如{{-1}})。

请参阅https://docs.python.org/3.4/library/string.html#formatstrings

如果您需要在文字文本中包含大括号字符,可以通过加倍来转义:{{ 和 }}。

在你的情况下,我希望以下工作:

r'E_obs and E_syn @ t={0}, $Q_i^{{-1}}$={1}, $\ell$={2}'.format(time, q_intr, lpath)

推荐阅读