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

如何修改matplotlib中secondary Y axis次Y轴的刻度字体大小

matplotlib次Y轴刻度字体大小不生效问题

问题场景

编写数据可视化代码调整坐标轴刻度字体大小时,使用如下代码期望统一设置所有轴的刻度字号为16号:

ax.set_xticks([-95, -97, -99, -101, -103])
ax.set_yticks([33, 34, 35, 36, 37])

secax = ax.secondary_yaxis(1.0)
secax.set_yticks([33, 34, 35, 36, 37])        

ax.tick_params(axis = 'both', labelsize = 16)

运行后X轴、主Y轴的刻度字号可正常调整为16号,但secondary_yaxis()生成的次Y轴刻度字号未发生变化,实际运行效果如下:
次Y轴刻度字号未调整的运行效果

问题原因

ax.tick_params()仅对调用方法的主坐标轴实例生效,secondary_yaxis()生成的次坐标轴是独立的坐标轴对象,不会自动继承主坐标轴的刻度参数配置,因此主坐标轴的字号设置不会同步到次Y轴。

修复方案

直接对次坐标轴实例secax单独调用tick_params()方法设置刻度字号即可,修正后的代码如下:

ax.set_xticks([-95, -97, -99, -101, -103])
ax.set_yticks([33, 34, 35, 36, 37])

secax = ax.secondary_yaxis(1.0)
secax.set_yticks([33, 34, 35, 36, 37])        

# 设置主坐标轴刻度字号
ax.tick_params(axis = 'both', labelsize = 16)
# 单独设置次Y轴刻度字号
secax.tick_params(labelsize=16)
  • 次坐标轴的tick_params()参数用法和主坐标轴完全一致,如需调整刻度线长度、标签颜色、刻度方向等属性,直接传入对应参数即可。
  • 如果存在多个次坐标轴(比如双侧都有次轴),需要对每个次坐标轴实例单独调用方法设置参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:51:46