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

使用usetex=True时如何将X轴刻度标签设置为粗体

解决Matplotlib启用usetex后X轴刻度粗体不生效的问题

当启用rc("text", usetex = True)后,Matplotlib会把所有文本交给LaTeX引擎渲染,此时通过set_xticklabels的weight='bold'参数设置粗体不会生效——这个参数是Matplotlib原生样式控制,LaTeX不识别它。

最简单的修改方式是直接用LaTeX的粗体命令\textbf{}包裹每个刻度标签文本:

把原来的这一行:

ax.set_xticklabels(ax.get_xticks(), weight='bold')

替换为:

ax.set_xticklabels([r"\textbf{%d}" % tick for tick in ax.get_xticks()])

修改后的完整代码

import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import rc
rc("text", usetex = True)

fig, ax = plt.subplots(figsize = (6, 3), tight_layout = True)

ax.set_yticks([i for i in range(0, 10+1, 1)])
ax.set_xticks([i for i in range(0, 100+1, 10)])
ax.tick_params(axis = "both", labelsize = 15)
# 用LaTeX粗体命令包裹刻度值
ax.set_xticklabels([r"\textbf{%d}" % tick for tick in ax.get_xticks()])
ax.set_title(r"$\underline{\textbf{Proper}}$")
plt.show()

原理很直接:启用usetex后,每个刻度标签都会被LaTeX编译,\textbf{}是LaTeX原生的粗体命令,能让LaTeX正确渲染出粗体数字刻度。如果需要对Y轴刻度做同样处理,用相同方式修改set_yticklabels即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:00:21