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

Matplotlib散点图无法调整字体大小等参数问题求助

问题根源
  • 你把全局字体配置代码(plt.rc()、mpl.rc())放在了创建fig和axes之后,Matplotlib的全局配置仅对配置完成后创建的绘图元素生效,已经生成的axes、figure不会被后续的rc设置修改——这就是调整参数后,只有色条(配置后创建的元素)字体有变化,其余元素无反应的核心原因。
  • 另外你重复设置了xtick和ytick的字体大小(先通过plt.rc设为SMALL_SIZE,又用mpl.rc设为0),属于冗余操作,但不是关键问题。
修复方案

将所有全局rc配置代码移到创建fig和axes之前,确保配置先生效,再生成绘图对象。同时建议统一使用plt.rc(或plt.rcParams),避免混用mpl和plt的rc设置,减少混乱。

修改后的完整代码示例:

import numpy as np
import matplotlib as mpl
from matplotlib import pyplot as plt
from matplotlib import colors  
from matplotlib import cm # color maps

# 先设置全局字体参数,替换成你需要的数值(设为0会导致字体消失)
SMALL_SIZE = 10
MEDIUM_SIZE = 12
BIGGER_SIZE = 14

plt.rc('font', size=SMALL_SIZE)          # 控制默认文本大小
plt.rc('axes', titlesize=SMALL_SIZE)     # 坐标轴标题字体大小
plt.rc('axes', labelsize=MEDIUM_SIZE)    # X/Y轴标签字体大小
plt.rc('xtick', labelsize=SMALL_SIZE)    # X轴刻度标签字体大小
plt.rc('ytick', labelsize=SMALL_SIZE)    # Y轴刻度标签字体大小
plt.rc('legend', fontsize=SMALL_SIZE)    # 图例字体大小
plt.rc('figure', titlesize=BIGGER_SIZE)  # 图表整体标题字体大小

# 再创建绘图对象
fig = plt.figure(figsize=(6, 4), dpi=120) 
axes = plt.axes()
plt.scatter(npdata[:,1], npdata[:,0], c=npdata[:,2], s=8, cmap=cm.coolwarm, edgecolors='black', linewidth=0.3, alpha=0.8)

cs = plt.contourf(yc, xc, zgridt, cmap='coolwarm', levels=16) 
cbar = plt.colorbar(cs)

plt.show()
额外优化建议

如果不想修改全局配置,只想针对当前图表单独调整字体,也可以直接通过axes对象进行设置,这种方式更灵活,不会影响其他绘图:

# 在创建axes后添加以下代码
axes.set_xlabel('X轴名称', fontsize=MEDIUM_SIZE)
axes.set_ylabel('Y轴名称', fontsize=MEDIUM_SIZE)
axes.tick_params(axis='both', labelsize=SMALL_SIZE)  # 同时设置X/Y轴刻度字体
axes.set_title('图表标题', fontsize=BIGGER_SIZE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:35:11