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

Python使用matplotlib绘图时如何统一多张图表的y轴刻度

Matplotlib 统一两张图表Y轴刻度的配置方法

matplotlib 默认会根据当前绘图数据的范围、量级自动适配Y轴刻度规则,当数据量级差异较大时,会自动调整刻度间隔、切换数值显示格式(比如大数值自动启用科学计数法),这就是两张不同矩阵规模的图表Y轴规则不一致的原因。要统一为MATRIX SIZE 500图表的刻度标准,直接使用以下两种方案即可:

  • 方案1:直接提取参考图的刻度配置(100%对齐,精度最高)
    同脚本内先后生成两张图时,画完MATRIX SIZE 500的参考图后,直接提取其Y轴的所有配置参数,套用到20000规模的图表上即可,代码示例:

    # 已完成MATRIX SIZE 500图表绘制,ax1为其对应的坐标轴对象
    # 提取参考图Y轴配置
    ref_ticks = ax1.get_yticks()
    ref_limit = ax1.get_ylim()
    ref_labels = [txt.get_text() for txt in ax1.get_yticklabels()]
    
    # 完成MATRIX SIZE 20000图表绘制,ax2为其对应的坐标轴对象,应用参考配置
    ax2.set_yticks(ref_ticks)
    ax2.set_yticklabels(ref_labels)
    ax2.set_ylim(ref_limit)
    # 强制关闭Y轴科学计数法、偏移量显示,避免大数值自动切换格式
    ax2.ticklabel_format(axis='y', style='plain', useOffset=False)
    
  • 方案2:手动指定匹配参考图的刻度规则(适合参考图已生成、无法直接获取坐标轴对象的场景)
    直接观察MATRIX SIZE 500参考图的Y轴参数:记录Y轴最小值、最大值、相邻刻度的间隔值、数值显示格式(整数/小数位数、是否带单位),在绘制20000规模的图表时手动传入这些参数即可,代码示例:

    import numpy as np
    import matplotlib.ticker as ticker
    
    # 以下三个参数替换为你从参考图上读取到的实际数值
    Y_AXIS_MIN = 0
    Y_AXIS_MAX = 120
    Y_TICK_STEP = 20
    
    # ax2为20000规模图表的坐标轴对象
    ax2.set_ylim(Y_AXIS_MIN, Y_AXIS_MAX)
    ax2.set_yticks(np.arange(Y_AXIS_MIN, Y_AXIS_MAX + Y_TICK_STEP, Y_TICK_STEP))
    # 配置刻度文本格式,和参考图保持一致:纯整数用'%d',保留1位小数用'%.1f'
    ax2.yaxis.set_major_formatter(ticker.FormatStrFormatter('%d'))
    ax2.ticklabel_format(axis='y', style='plain', useOffset=False)
    

注意:如果20000规模的实际数据峰值超出了参考图的Y轴上限,可以保持刻度步长、显示格式和参考图完全一致,仅调大Y_AXIS_MAX参数覆盖数据峰值即可,不会破坏刻度规则的统一性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:48:35