如何绘制Python DataFrame:以列为X轴汇总值生成柱状图
各列数值汇总柱状图绘制方案
核心思路
先计算DataFrame每一列的总和,再基于汇总结果生成柱状图,以下是具体实现步骤:
1. 模拟示例DataFrame
先构造和你截图结构一致的示例数据(方便测试):
import pandas as pd data = { 'A': [10, 20, 30], 'B': [15, 25, 35], 'C': [5, 15, 25] } df = pd.DataFrame(data)
2. 计算各列总和
用pandas的sum()方法直接按列汇总,大规模数据可添加numeric_only=True过滤非数值列:
# 计算列总和,仅处理数值型列 column_totals = df.sum(numeric_only=True)
3. 绘制柱状图
提供两种常用实现方式:
方式一:Matplotlib(基础通用)
import matplotlib.pyplot as plt # 生成柱状图 plt.bar(column_totals.index, column_totals.values) # 设置标签与标题 plt.xlabel('列名') plt.ylabel('列总和') plt.title('各列数值汇总柱状图') # 若列名过多,可旋转X轴标签避免重叠 # plt.xticks(rotation=45) plt.show()
方式二:Seaborn(样式更美观)
import seaborn as sns import matplotlib.pyplot as plt # 设置绘图风格 sns.set_style("whitegrid") # 生成柱状图 sns.barplot(x=column_totals.index, y=column_totals.values) # 设置标签与标题 plt.xlabel('列名') plt.ylabel('列总和') plt.title('各列数值汇总柱状图') plt.show()
大规模DataFrame优化提示
- 确保数值列使用
int/float类型,避免object类型拖慢计算速度 - 若列数量极多,可通过
plt.tight_layout()自动调整布局,防止标签被截断
内容的提问来源于stack exchange,提问作者Dun King
相关产品推荐
相关产品推荐

