You need to enable JavaScript to run this app. Matplotlib自定义字体设置:已改轴标签,如何修改轴刻度数字字体
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib自定义字体设置:已改轴标签,如何修改轴刻度数字字体

坐标轴刻度自定义字体配置方法

复用你已经定义好的自定义字体实例prop即可实现刻度数字的字体修改,不需要重复加载字体文件。以下是和你现有代码适配度最高的实现方案,以及几种可选的扩展写法:

  • 最小改动方案(直接在你现有代码末尾追加2行配置即可)
    Matplotlib原生的plt.xticks()/plt.yticks()接口支持直接传入字体属性参数,和你之前设置轴标签字体的逻辑完全一致,不需要额外修改绘图逻辑:
# 给x轴所有刻度数字应用自定义字体
plt.xticks(fontproperties=prop, size=12)
# 给y轴所有刻度数字应用自定义字体
plt.yticks(fontproperties=prop, size=12)
  • 版本兼容方案(适配所有Matplotlib版本,适合多子图场景)
    如果遇到旧版本Matplotlib下ticks接口传参不生效的问题,可以显式获取当前坐标轴的所有刻度文本对象,逐个绑定字体属性,兼容性更强:
# 获取当前激活的坐标轴对象
ax = plt.gca()
# 遍历x、y轴的所有刻度文本,统一应用字体
for tick_label in ax.get_xticklabels() + ax.get_yticklabels():
    tick_label.set_fontproperties(prop)
    tick_label.set_size(12)
  • 全局配置方案(全图统一字体时效率最高)
    如果需要让图中所有文本元素(刻度、标签、标题、图例)都使用这款自定义字体,可以在加载字体后修改全局绘图参数,不需要后续每个文本元素单独传字体参数:
# 将自定义字体注册到Matplotlib全局字体列表
plt.rcParams['font.family'] = prop.get_name()
# 解决全局改字体后负号显示为方块的常见问题
plt.rcParams['axes.unicode_minus'] = False

注意:使用全局rcParams配置时,相关代码需要放在所有绘图操作之前执行,否则已经渲染生成的文本元素不会自动应用新字体。

适配原有代码的完整可运行示例

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import seaborn as sns

# 加载本地自定义字体
prop = fm.FontProperties(fname='/Users/NAME/Downloads/GARA.ttf')

# 绘制折线图
sns.lineplot(x=stlr_df['Number of Steps'], y=stlr_df['Learning Rate'], color='purple')

# 设置轴标签字体
plt.xlabel('Number of Steps', fontproperties=prop, size=14)
plt.ylabel('Learning Rate', fontproperties=prop, size=14)

# 配置坐标轴刻度数字的字体
plt.xticks(fontproperties=prop, size=12)
plt.yticks(fontproperties=prop, size=12)

# 渲染显示
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 22:06:08