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

如何让matplotlib.pyplot的Y轴显示间隔标签并优化数值格式

解决Matplotlib Y轴标签密集与数值取整问题

针对Y轴标签过密、数值显示不友好的问题,可通过Matplotlib的ticker模块精准控制刻度数量和格式,以下是修改后的代码及说明:

关键修改点

  1. 导入刻度控制工具:从matplotlib.ticker导入MaxNLocator和ScalarFormatter,前者用于控制刻度数量并强制整数,后者用于优化数值显示格式。
  2. 添加Y轴刻度配置:在绘图后设置Y轴的定位器和格式化器,减少刻度数量并确保数值为整数。

修改后的完整代码

from operator import itemgetter
import pandas as pd
import matplotlib.pyplot as plt
import time
from matplotlib.ticker import MaxNLocator, ScalarFormatter  # 新增导入

def GraphBuilder():
    item = 0
    savenumber = 1
    ColumnTime = itemgetter(0)(column_names)
    while item < col_count:
        SecondaryColumn = itemgetter(item)(column_names)
        ColumnTimeData = pandagraph[ColumnTime]
        SecondaryColumnData = pandagraph[(SecondaryColumn)]
        
        plt.xlim([0, 1000])
        plt.ylim([-100, 100000])
        plt.ylabel(SecondaryColumn)
        plt.plot(ColumnTimeData, SecondaryColumnData)
        plt.xticks(rotation = 45)
        
        # 新增Y轴配置:减少刻度数量+强制整数显示
        ax = plt.gca()
        # 设置Y轴最多显示5个整数刻度(可根据需求调整nbins值)
        ax.yaxis.set_major_locator(MaxNLocator(integer=True, nbins=5))
        # 关闭科学计数法,显示完整整数
        formatter = ScalarFormatter(useMathText=False)
        formatter.set_scientific(False)
        ax.yaxis.set_major_formatter(formatter)
        
        print("Starting new graph")
        Start = time.time()
        plt.savefig(f"Graph{savenumber}.tiff")
        plt.close()
        print(f"Graph {savenumber} completed")
        End = time.time()
        TotalGraphTime = round(End - Start, 2)
        print("Graph completed in: ", TotalGraphTime, " Seconds.")
        time.sleep(0.1)
        item += 1
        savenumber +=1 

说明

  • MaxNLocator(integer=True, nbins=5):nbins控制Y轴显示的刻度总数,可根据图表大小调整(比如改成6、7);integer=True确保所有刻度都是整数。
  • ScalarFormatter配合set_scientific(False):避免大数值被自动转换成科学计数法,保证显示完整的整数,提升可读性。
  • 原代码中的plt.cla()和plt.clf()可去掉,因为plt.close()已经会清除当前图表,避免重复操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:21:30