pandas按sex分组后绘制region的hist直方图无法分开显示如何解决
解决方案
原代码运行后两个子图出现在同一画布,是因为pandas默认将groupby后的所有分组绘图结果输出到当前活动的同一画布对象上,每次绘制前新建独立画布即可实现分开绘制,以下是可直接运行的实现代码:
方法1:遍历分组自动绘制(适用于分组数量多的场景)
import pandas as pd import matplotlib.pyplot as plt # 读取数据集 data = pd.read_csv('insurance.csv') # 按性别分组遍历,每组单独绘制一个画布 for gender, group_df in data.groupby('sex'): # 新建独立画布,可自定义画布尺寸 plt.figure(figsize=(6, 4)) group_df['region'].hist() # 自定义图表信息 plt.title(f'{gender}人群地区分布') plt.xlabel('地区') plt.ylabel('人数') # 若需要保存单张图,可在此处添加保存代码:plt.savefig(f'{gender}地区分布.png') plt.show()
方法2:手动筛选分组绘制(适用于分组数量少的场景)
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('insurance.csv') # 单独绘制女性地区分布 plt.figure(figsize=(6,4)) data[data['sex'] == 'female']['region'].hist() plt.title('女性人群地区分布') # 单独绘制男性地区分布 plt.figure(figsize=(6,4)) data[data['sex'] == 'male']['region'].hist() plt.title('男性人群地区分布') plt.show()
内容的提问来源于stack exchange,提问作者matteofolli
相关产品推荐
相关产品推荐

