Python根据性别中的男女属性绘制各省份男女人数堆叠柱形图,使用seaborn库,把该图放入plt.subplot(2,2,4)中
时间: 2023-05-26 12:06:36 浏览: 29
以下是Python代码:
```
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# 数据准备
df = pd.read_csv("province.csv")
df_male = df[df['gender'] == '男']
df_female = df[df['gender'] == '女']
# 绘制堆叠柱形图
sns.set(style="whitegrid")
sns.barplot(x="province", y="value", hue="variable", data=pd.melt(df_male, ['province', 'gender']), palette="RdBu")
sns.barplot(x="province", y="value", hue="variable", data=pd.melt(df_female, ['province', 'gender']), palette="RdBu_r",
bottom=pd.DataFrame({'value': df_male['value'].values, 'province': df_male['province'].values}))
# 显示图形
plt.subplot(2,2,4)
plt.show()
```
其中,province.csv是包含每个省份男女人数的数据文件,列名包括:province(省份名称)、value(人数)、gender(性别)。
绘制堆叠柱形图使用了seaborn库中的barplot函数,并通过hue参数设置了男女属性,palette参数设置了颜色。同时在绘制女性数据时,使用bottom参数设置了底层为男性数据。
最后使用plt.subplot函数将该图放入了2x2的第四个位置。