我在使用 Python 的 Matplotlib 库绘制以下颜色条图时遇到标题问题。有两个次要情节。第一个标题效果很好,即 LaTeX 渲染成功完成。但是,它会返回第二个错误。
fig, axs = plt.subplots(1, 2, figsize=(24, 10))
c1 = axs[0].contourf(x, y, zT, 60, cmap='seismic', vmin=-2.5, vmax=2.5)
axs[0].set_title(r'$\zeta_T$ at t={}'.format(l))
fig.colorbar(c1, ax=axs[0])
c2 = axs[1].contourf(x, y, bcv, 40, cmap='seismic', vmin=-0.25, vmax=0.25)
axs[1].set_title(r'$\sqrt{U_c^2 + V_c^2}$ at t={}'.format(l)) # Adjusted title
fig.colorbar(c2, ax=axs[1])
错误如下:
KeyError Traceback (most recent call last)
Cell In[27], line 80
79 c2 = axs[1].contourf(x, y, bcv, 40, cmap='seismic', vmin=-0.25, vmax=0.25)
---> 80 axs[1].set_title(r'$\sqrt{U_c^2 + V_c^2}$ at t={}'.format(l)) # Adjusted title
81 fig.colorbar(c2, ax=axs[1])
KeyError: 'U_c^2 + V_c^2'
我想知道为什么 LaTeX 命令
$\sqrt{U_c^2+V_c^2}$
在标题中不起作用。为什么 LaTeX 渲染在 Matplotlib 中不起作用?
我尝试通过多种方式修复它,但我始终收到“KeyError”。我使用
plt.rc('text', usetex=True)
在 Matplotlib 中启用 LaTeX 渲染。但它也不起作用。我想解决 Matplotlib 中的 LaTeX 渲染问题。
这种乳胶格式与 python
.format()
方法的功能发生冲突。 后者在字符串中寻找大括号{...}
并对其进行操作,但是中有两组大括号
r'$\sqrt{U_c^2 + V_c^2}$ at t={}'
我建议您将其拆分为两个字符串,仅使用第二个字符串的格式方法
r'$\sqrt{U_c^2 + V_c^2}$ ' + 'at t={}'.format(l)
这是一个类似字符的完整工作示例(我没有你的数据)。
import matplotlib.pyplot as plt
import numpy as np
plt.rc('text', usetex=True)
x = np.linspace(-np.pi, np.pi, 100)
t = 3.0
fig, ax = plt.subplots()
ax.plot(x, np.sqrt(x**2+1))
ax.set_title(r'$\sqrt{x^2 + 1}$' + ' at {}'.format(t))