使用格式在matplotlib轴标签中添加多个下标字符



我正在尝试向图形的y标签添加一些下标,并使用format完成,这样我就不必手动制作多个图形。由于matplotlib允许TeX格式,这很容易,但用于子字符或上标的多个字符的括号与format重叠。我使用的代码是

fig, ax = plt.subplots()
ax.plot(a,real_int, label='real int')
ax.plot(a,EM_int_sim, label='EM int')
ax.set_xlabel('t')
format_list = [l,j]
ax.set_ylabel(r"$phi_{}$".format(*[l,j]))
ax.set_title("Offspring intensities")
ax.legend()

通常在TeX格式中,我会使用phi_{lj}来编写字符,但format也使用花括号。上面的代码只在下标中给出了l(这是我所期望的(,但我也尝试过不给出任何字符的phi_{{}},只下标l但不下标jphi_{}{},以及给出我见过的longes错误消息的phi_{}_{}。有什么想法吗?

好吧,所以如果您将方法切换为字符串插入,它就可以工作了。此外,我还将您想要插入的int列表转换为字符串以使其工作。但是,您也可以通过执行不同的%s/%d/f在花括号中进行多次插入。。etc

import matplotlib.pyplot as plt
fig, ax = plt.subplots(dpi=300)
ax.set_xlabel('t')
format_list = [0,1]
string_list=",".join([str(val) for val in format_list])
ax.set_ylabel(r"$phi_{%s}$" % string_list)
ax.set_title("Offspring intensities")
ax.legend()

最新更新