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

Matplotlib图表Y轴设置:如何按1000万英镑增量配置

问题解答

是的,你需要手动指定Y轴的刻度值和对应标签——因为pandas默认会根据数据范围自动生成刻度,无法直接匹配你需要的「1000万英镑为增量」的要求。

解决方案步骤

  1. 获取绘图轴对象:先把pandas绘图返回的轴对象保存下来,方便后续修改Y轴设置
  2. 计算刻度范围:根据销售额数据的最大值,生成以1000万为步长的刻度数组
  3. 设置刻度与标签:把生成的刻度应用到Y轴,并设置易读的单位标签(比如「X万」或「XM」)

修改后的完整代码

import matplotlib.pyplot as plt
import numpy as np

# 保存轴对象,方便后续调整Y轴
ax = df_total_gross_sales.set_index('Date').plot.bar()

# 原有的标题、轴标签设置
plt.title('Gross Sales: Discounted Vs Full Price', pad=10, fontsize=16)
plt.ylabel("Gross Sales (£)", labelpad=10, fontsize=14)
plt.xlabel("Year-Month", labelpad=20, fontsize=14)

# 计算Y轴刻度:以1000万英镑为增量
# 先获取所有销售额列的最大值,确保刻度覆盖全部数据
max_sales = df_total_gross_sales.iloc[:, 1:].max().max()
# 生成从0开始,步长10000000(1000万)的刻度数组
yticks = np.arange(0, max_sales + 10000000, 10000000)
# 应用刻度到Y轴
ax.set_yticks(yticks)
# 设置刻度标签,显示为「X百万」格式(可根据需求调整)
ax.set_yticklabels([f'{tick // 1000000}万' for tick in yticks])

# 原有的布局与图例设置
plt.tight_layout()
plt.legend(facecolor='white', fontsize=13, framealpha=1)
plt.show()

补充说明

  • 如果你的销售额数据已经是「百万英镑」量级(比如6代表600万英镑),只需把刻度步长改成10(对应1000万英镑),标签改成f'{tick}M'即可
  • 手动设置刻度是实现自定义轴刻度的标准方式,也是Matplotlib/pandas绘图中常见的需求调整操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:00:46