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

如何使用DataFrame两列数据绘制符合Excel效果的Seaborn直方图

问题核心原因
  • 你混淆了直方图和柱状图的适用场景:histplot是用来统计单个变量的频次分布的工具,同时传入x和y参数时会生成双变量联合分布的热力直方图,和你预期的单维度柱子效果完全不符。
  • 你要的Excel效果本质是分类柱状图,核心是展示每个gr_age分类对应的weighted_cost数值大小。
可行实现方案

方案1:使用seaborn.barplot(更推荐,匹配需求场景)

直接通过x、y参数映射分类和对应数值,默认生成的效果和Excel直方图一致,添加ci=None可关闭默认的置信区间误差线:

import seaborn as sns
import matplotlib.pyplot as plt

sns.barplot(data=df, x="gr_age", y="weighted_cost", color="steelblue", ci=None)
# 可根据需要自定义坐标轴标签
plt.xlabel("gr_age")
plt.ylabel("weighted_cost")
plt.show()

方案2:使用histplot配合weights参数实现

如果一定要用histplot实现对应效果,将weighted_cost作为权重参数传入,搭配discrete=True即可:

sns.histplot(data=df, x="gr_age", weights="weighted_cost", discrete=True, color="steelblue")
plt.xlabel("gr_age")
plt.ylabel("weighted_cost")
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:57:01