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

如何以Pandas DataFrame列作为bins绘制求和直方图?

实现按列名展示求和值的柱状图

你提到的需求本质是柱状图(直方图用于展示连续数值的分布频率,而这里是按离散的列名作为类别展示汇总值),以下是几种常用可视化库的实现方案:

步骤1:初始化数据并计算列求和

首先构造目标DataFrame并计算每列的总和:

import pandas as pd

# 构造你的DataFrame
data = {
    'Blue': [1.0, 24.0, 3.0, 5.0, 2.0, 10.0],
    'Green': [27.0, 3.0, 3.0, 0.0, 5.0, 20.0],
    'Red': [30.0, 22.0, 2.0, 5.0, 6.0, 7.0]
}
df = pd.DataFrame(data)

# 计算各列求和值
column_sums = df.sum()

方法1:Pandas 自带绘图(最简方案)

Pandas内置绘图接口,直接对求和结果调用plot.bar()即可:

import matplotlib.pyplot as plt

column_sums.plot(kind='bar', title='各列数值求和柱状图')
plt.xlabel('颜色列名')
plt.ylabel('求和值')
plt.show()

方法2:Matplotlib 原生实现(高度自定义)

如果需要更灵活控制样式(比如柱子颜色匹配列名),用Matplotlib原生实现:

import matplotlib.pyplot as plt

# 获取列名和对应求和值
labels = column_sums.index
values = column_sums.values

# 绘制柱状图并设置柱子颜色匹配列名
plt.bar(labels, values, color=['blue', 'green', 'red'])
plt.title('各列数值求和柱状图')
plt.xlabel('颜色列名')
plt.ylabel('求和值')
plt.show()

方法3:Seaborn 实现(美观样式)

Seaborn能快速生成更美观的可视化效果,需要先把求和结果转成长格式DataFrame:

import seaborn as sns
import matplotlib.pyplot as plt

# 转换为长格式DataFrame,适配Seaborn输入要求
sum_df = column_sums.reset_index()
sum_df.columns = ['Color', 'Total']

# 绘制柱状图并设置颜色
sns.barplot(data=sum_df, x='Color', y='Total', palette=['blue', 'green', 'red'])
plt.title('各列数值求和柱状图')
plt.xlabel('颜色列名')
plt.ylabel('求和值')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:10:37