You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib绘图坐标轴标题设置粗体时下标未加粗问题求解

问题原因

下标无法随正文同步加粗的核心原因:\rm是旧式数学字体命令,不会继承Matplotlib为坐标轴标题设置的fontweight='bold'属性,会默认调用常规字重的罗马字形渲染包裹内容,最终出现下标和其余文本字重不一致的问题。

可行解决方案

根据你当前的渲染场景选择对应写法即可:

  • 使用Matplotlib默认mathtext渲染(未开启LaTeX原生渲染):直接将下标部分的\rm替换为\mathbf,手动指定数学环境内的文本为粗体,无需额外修改全局配置,代码如下:
plt.ylabel(r'PC$_{\mathbf{SD}}$ (A)', fontsize=22, fontweight='bold')
  • 需要全局统一数学文本样式、不想逐个标记粗体:提前修改mathtext相关配置,让数学环境字体自动继承正文的字重属性:
import matplotlib.pyplot as plt
# 配置mathtext字体集匹配正文,开启字重继承
plt.rcParams['mathtext.fontset'] = 'dejavusans'
plt.rcParams['mathtext.default'] = 'bf'
# 原有绘图代码无需额外修改下标写法,推荐将旧式\rm替换为兼容性更好的\mathrm
plt.ylabel(r'PC$_{\mathrm{SD}}$ (A)', fontsize=22, fontweight='bold')

注意:\rm属于已淘汰的旧式字体命令,在Matplotlib mathtext和LaTeX中都不会主动继承上下文的字体族、字重属性,极易出现字体样式不统一的问题,日常使用推荐替换为标准命令\mathrm。

  • 已开启text.usetex=True原生LaTeX渲染的场景:使用LaTeX原生粗体命令包裹所有需要加粗的内容:
plt.ylabel(r'$\textbf{PC}_{\textbf{SD}}$ (A)', fontsize=22, fontweight='bold')

内容的提问来源于stack exchange,提问作者Hamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:09:23