我正在尝试向图形的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
但不下标j
的phi_{}{}
,以及给出我见过的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()