matplotlib plt.title设置粗体后文本空格消失问题求解
问题根因
你使用的$\bf{}$属于LaTeX数学环境语法,数学环境默认会忽略普通文本之间的空格,只有数学符号前后的空格会被保留,因此region变量里的单词空格会消失。
解决方案
方案1:最小改动适配原有写法
在数学环境中加入\mathrm{}包裹region内容,将其指定为普通文本模式,即可保留原有空格:
plt.title(r"$\bf{\mathrm{" + region + "}}$" + " (MAPE=%s)" % mape)
如果仍有空格丢失问题,可以额外把region中的空格替换为LaTeX可识别的转义空格\ :
plt.title(r"$\bf{" + region.replace(' ', r'\ ') + r"}$" + " (MAPE=%s)" % mape)
方案2:使用markdown原生语法(推荐,需matplotlib≥3.4)
matplotlib 3.4及以上版本支持标题自动解析markdown格式,直接用markdown加粗语法即可,完全不会出现空格问题,写法最简洁:
plt.title(f"**{region}** (MAPE={mape})", parse_md=True)
如果你的matplotlib版本低于3.4,直接使用方案1即可。
内容的提问来源于stack exchange,提问作者Matthieu E.
相关产品推荐
相关产品推荐

