如何使用Python基于pandas DataFrame多列数据生成饼图
基于pandas DataFrame生成三类数值饼图的实现方案
这里提供两种常用的可落地实现方式,适配单行汇总/多行明细两种数据结构:
方案1:使用pandas内置绘图接口(最简实现)
该方法代码量最少,适合快速出图:
- 先导入依赖库:
import pandas as pd import matplotlib.pyplot as plt
- 提取三类列的数值汇总(单/多行数据都兼容):
# 自动对approve、disapprove、none三列做求和计算 pie_data = df[["approve", "disapprove", "none"]].sum()
- 直接生成饼图:
# autopct参数设置扇区百分比显示格式,ylabel设为空可以隐藏默认的列名标注 pie_data.plot.pie(autopct="%1.1f%%", figsize=(6, 6), ylabel="") plt.show()
方案2:使用matplotlib自定义绘制(灵活度更高)
该方法支持自定义更多样式参数,适合需要调整展示效果的场景:
- 导入依赖库和方案1一致,先提取标签和数值:
labels = ["approve", "disapprove", "none"] # 提取三类列的合计值 sizes = df[["approve", "disapprove", "none"]].sum().values
- 自定义绘制饼图:
plt.figure(figsize=(6, 6)) # startangle参数设置饼图的起始角度 plt.pie(sizes, labels=labels, autopct="%1.1f%%", startangle=90) # 保证饼图输出为正圆形 plt.axis("equal") plt.show()
补充说明:如果你的DataFrame已经是预计算好的单行汇总数据,
sum()方法也不会影响最终结果,无需额外修改代码。
内容的提问来源于stack exchange,提问作者ESarousi
相关产品推荐
相关产品推荐

