如何在Pandas中绘制多个饼图?现有代码合并显示问题求解
解决方案
问题出在你的循环代码没有为每个分类变量创建独立的绘图画布,Matplotlib默认会在当前活动的绘图区域叠加绘制,导致所有饼图挤在同一个图表里。
步骤1:正确筛选分类变量
首先确保你正确获取了数据框中的分类变量(通常是object或category类型):
# 提取分类变量列 cat_var = census.select_dtypes(include=['object', 'category']).columns.tolist()
步骤2:修改循环代码,生成独立饼图
在循环中每次创建新的绘图画布,确保每个分类变量的饼图单独显示:
import matplotlib.pyplot as plt for item in cat_var: # 为每个变量创建新画布 plt.figure(figsize=(10,10)) # 绘制饼图 census[item].value_counts().plot.pie(fontsize=10, autopct="%.1f") # 设置饼图为正圆形 plt.gca().set_aspect('equal') # 添加变量名称作为标题,方便区分 plt.title(f'{item} 分布饼图', fontsize=12) # 显示当前饼图 plt.show()
关键说明
plt.figure():每次循环创建新的绘图窗口/画布,避免后续绘图覆盖之前的内容。plt.show():在Jupyter环境或本地脚本中,强制显示当前画布的内容,确保每个饼图独立呈现。
内容的提问来源于stack exchange,提问作者Hana
相关产品推荐
相关产品推荐

