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

如何修改Matplotlib 3D绘图中Z轴的字体参数

问题原因

matplotlib.pyplot 没有提供顶层的zticks() API,你注释掉的代码触发AttributeError正是因为这个,最终导致Z轴刻度标签没有应用你预设的字体配置——目前你的代码仅通过ax.set_zlabel给Z轴的轴标签设置了字体,Z轴刻度的字体仍为默认值。
当前Z轴字体未生效的效果如下:
当前Z轴刻度字体为默认值,未应用12号字配置
另外你的代码里还有两个容易触发运行错误的隐患:

  • 导入from matplotlib import cm后,又定义cm=1/2.54覆盖了cm模块,后续调用cm.viridis时会触发属性错误
  • 代码中使用了np.meshgrid但没有导入numpy库
解决方法

方法1:最小改动适配现有代码

直接调用3D坐标轴实例的Z轴刻度配置方法,和你配置X/Y轴的逻辑保持一致即可:

  1. 参照lin_x/lin_y的定义方式,声明Z轴刻度值lin_z
  2. 调用ax.set_zticks设置刻度位置,ax.set_zticklabels给Z轴刻度应用字体配置
    修改后的可运行核心代码如下:
import numpy as np # 补充缺失的numpy导入
import matplotlib.pyplot as plt
from matplotlib import cm

font = {'size'   : 12}

cm_to_inch = 1/2.54 # 修改变量名,避免覆盖matplotlib的cm模块

size_x = 10*cm_to_inch
size_y = 8*cm_to_inch
min_limx = 4
max_limx = 10
min_limy = 0
max_limy = 50
min_limz = 0
max_limz = 8

fig, ax = plt.subplots(figsize=(size_x, size_y), subplot_kw={"projection": "3d"})
X, Y = np.meshgrid(xnew, ynew, indexing='ij')
Z1 = m_fill
Z2 = m_nofill
surf = ax.plot_surface(X, Y, Z1, cmap=cm.viridis, linewidth=0, antialiased=False)
surf = ax.plot_surface(X, Y, Z2, color='w', linewidth=0, antialiased=False)

ax.set_xlabel('$\lambda$', **font)
ax.set_ylabel('$\chi$', **font)
ax.set_zlabel('$\it{m_{0}, кг}$', **font)

lin_x = np.arange(min_limx, max_limx, step=2)
lin_y = np.arange(min_limy, max_limy, step=15)
lin_z = np.arange(min_limz, max_limz+1, step=2) # 可按需调整步长修改Z轴刻度密度

plt.xticks(lin_x, **font)
plt.yticks(lin_y, **font)
# 替换原来报错的plt.zticks代码
ax.set_zticks(lin_z)
ax.set_zticklabels(lin_z, **font)

ax.set_zlim(0, 8)
ax.view_init(45, -45)
plt.grid()
plt.show()
fig.savefig('p0_V_m0.png', format='png', dpi=300)

方法2:全局配置统一字体(推荐)

如果需要所有坐标轴(包括3D轴三个维度的标签、刻度)字体完全统一,可以在绘图代码前直接更新matplotlib全局参数,不需要给每个轴单独传font配置,从根源避免漏设单个轴的问题:

# 所有绘图逻辑前添加全局配置
plt.rcParams.update({
    "font.size": 12,
    # 如需指定字体族,可取消注释下一行,替换为你需要的字体名称
    # "font.family": "Times New Roman"
})

配置完成后,所有文字元素会自动应用设置的字体规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:01:03