Matplotlib中循环生成多位数变量上标问题求助
解决Matplotlib图例核反应式上标格式问题
问题出在LaTeX数学环境的语法上:当需要将多个字符设为上标时,必须用大括号{}把这些字符包裹起来。你的代码中$^{isot}$会被解析为$^161$(以161为例),LaTeX只会将第一个字符1设为上标,剩下的61保持正常格式。
修改方法很简单,在f-string中给isot变量额外添加一层转义的大括号,确保整个数字被包裹在上标范围内:
fig, ax = plt.subplots() for isot, th_cs in zip(ho_isots, th_cs_holmium): # 给isot添加双层大括号转义,确保LaTeX将整个数字识别为上标内容 ax.plot(ep_thcs, th_cs, linewidth=2, label=f'$^{{nat}}$Dy(p,x)$^{{{isot}}}$Ho') # 显示图例 ax.legend() plt.show()
这样处理后,isot的整数值会被完整包裹在{}中,LaTeX会将整个数字渲染为上标,最终得到你期望的ⁿᵃᵗDy(p,x)¹⁶¹Ho格式。
内容的提问来源于stack exchange,提问作者user21071304
相关产品推荐
相关产品推荐

