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

Python绘制单X轴三Y轴直方图/柱状图及X轴区间优化问题

解决X轴显示混乱并按区间分组绘制柱状图

首先,你遇到的X轴混乱问题是因为method列包含了752个独立取值,每个值对应一个柱子,自然会挤在一起看不清。我们可以通过数据分箱+分组聚合的方式,把method划分到你指定的区间里,再基于这些区间绘制柱状图。

下面是完整的解决方案,分步骤说明:

1. 数据预处理:给method划分区间

我们用Pandas的pd.cut()函数把method值归类到你想要的区间,同时给每个区间设置易读的标签:

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df = pd.read_csv("chessMethodReq.txt")

# 定义区间范围和对应的显示标签
bins = [0, 100, 200, 300, 400, 500, 600, 700, 800]
labels = ['[0,100]', '[100,200]', '[200,300]', '[300,400]', '[400,500]', '[500,600]', '[600,700]', '[700,800]']

# 给method列分箱,生成新的区间列
df['method_interval'] = pd.cut(df['method'], bins=bins, labels=labels, include_lowest=True)

2. 按区间聚合数据

接下来把每个区间内的三个Requirement指标聚合起来——这里默认用求和,如果你需要看区间内的平均水平,把sum()改成mean()即可:

# 按区间分组,聚合三个Requirement列
grouped_df = df.groupby('method_interval')[['RequirementT', 'RequirementN', 'RequirementU']].sum().reset_index()

3. 绘制分组后的柱状图

现在用聚合后的数据绘图,X轴就是你想要的区间,不会再出现混乱:

# 绘制柱状图,调整参数让图表更美观
ax = grouped_df.plot.bar(
    x='method_interval', 
    y=['RequirementT', 'RequirementN', 'RequirementU'], 
    figsize=(10,6),  # 设置图表尺寸
    width=0.7,       # 调整柱子宽度
    rot=45           # X轴标签旋转45度,避免重叠
)

# 添加标题和轴标签
plt.title('Requirement Metrics by Method Intervals')
plt.xlabel('Method Intervals')
plt.ylabel('Requirement Values')

# 自动调整布局,防止标签被截断
plt.tight_layout()
plt.show()

关键细节说明

  • include_lowest=True确保method=0的数值能被正确包含在第一个区间里
  • 聚合方式可按需切换:如果要统计每个区间的总需求数用sum(),要查看区间内的平均表现用mean()
  • 调整figsize和rot参数可以进一步优化图表的可读性,避免标签重叠

内容的提问来源于stack exchange,提问作者منى

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:09:04