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

如何修改Pandas直方图的X轴以匹配目标样式?

问题

我有一个存储智能手机容量数据的DataFrame,数据示例如下:

indexcapacity
1128
264
3256
4512
564
632
......

我希望为该数据生成直方图,尝试使用以下代码:

data.hist(column="capacity", bins=data["capacity"].unique().size, range=(0, max(data["capacity"])), grid=False, edgecolor='black')
plt.show()

当前生成的直方图X轴按100区间划分,我希望将其调整为以具体容量值为X轴的样式,请问该如何实现?

解决方案

你的容量数据是离散的固定值,默认的hist()方法会按连续区间划分X轴,要改成显示具体容量值,有两种实用方法:

方法一:用柱状图直接展示离散频数(推荐)

直接统计每个容量的出现次数,用bar()绘制柱状图,X轴自然就是具体的容量值:

import matplotlib.pyplot as plt

# 统计每个容量的出现次数并按容量排序
capacity_counts = data["capacity"].value_counts().sort_index()

# 绘制柱状图
plt.bar(capacity_counts.index, capacity_counts.values, edgecolor='black')

# 设置图表标签
plt.xlabel("Capacity")
plt.ylabel("Count")
plt.title("Smartphone Capacity Distribution")

plt.show()

方法二:调整hist()的bins参数

如果坚持用hist()方法,需要手动设置bins的边界,让每个柱子刚好对应一个容量值,再把X轴刻度改成具体容量:

import matplotlib.pyplot as plt

# 获取排序后的唯一容量值
unique_caps = sorted(data["capacity"].unique())
# 设置bins边界,每个容量值前后各留小范围,确保柱子对应准确
bins = [cap - 1 for cap in unique_caps] + [unique_caps[-1] + 1]

# 绘制直方图
data.hist(column="capacity", bins=bins, grid=False, edgecolor='black')
# 设置X轴刻度为具体容量值
plt.xticks(unique_caps)
plt.xlabel("Capacity")
plt.ylabel("Count")

plt.show()

两种方法都能实现你要的效果,第一种更适合离散数据的展示逻辑,操作也更简单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:55:14