seaborn.countplot关键字传递画堆积图

参考链接:https://www.cnblogs.com/hgz-dm/p/10886309.html

1.引入数据

import pandas as pd #数据分析
import numpy as np #科学计算
from pandas import Series,DataFrame

data_train = pd.read_csv("F:\\个人\\python\\titanic\\train.csv")
data_train

seaborn.countplot关键字传递画堆积图_第1张图片

2.1 使用seaborn的countplot函数画图,使用关键字参数传递,bottom堆积

fig = plt.figure()
fig.set(alpha=0.2)

male_suivived = data_train.Survived[data_train.Sex == 'male']
female_suivived = data_train.Survived[data_train.Sex == 'female']

## sort_index: 对dataframe按照index进行排序
# male_suivived_style = dict(facecolor='r', label='male')
# female_suivived_style = dict(facecolor='g', label='female', bottom=male_suivived.value_counts().sort_index().values)

# sns.countplot(male_suivived, data=data_train, order=male_suivived.value_counts().sort_index().index, **male_suivived_style)
# sns.countplot(female_suivived, data=data_train, order=male_suivived.value_counts().sort_index().index, **female_suivived_style)

## sort_values: 对dataframe按照value进行排序, ascending=False降序排列
# 关键字参数内容。facecolor:背景色;label:图例;bottom:下面的图
male_suivived_style = dict(facecolor='r', label='male')
female_suivived_style = dict(facecolor='g', label='female', bottom=male_suivived.value_counts().sort_values(ascending=False).values)

sns.countplot(male_suivived, data=data_train, order=male_suivived.value_counts().sort_values(ascending=False).index, **male_suivived_style)
sns.countplot(female_suivived, data=data_train, order=male_suivived.value_counts().sort_values(ascending=False).index, **female_suivived_style)


plt.xlabel('性别')
plt.ylabel('人数')

# 设置x轴刻度标签
plt.xticks([0, 1],['未获救', '获救'])
# 让图例展示出来
plt.legend()
plt.show()

seaborn.countplot关键字传递画堆积图_第2张图片

2.2 使用seaborn的barplot函数画图,

fig, ax = plt.subplots(1,1)
# hue:指定分类变量
sns.countplot(x='Survived', data=data_train, hue='Sex')

plt.show()

seaborn.countplot关键字传递画堆积图_第3张图片

3. 使用pandas进行画堆积柱状图

#看看各性别的获救情况
fig = plt.figure()
fig.set(alpha=0.2) # 设定图表颜色alpha参数

Survived_m = data_train.Survived[data_train.Sex == 'male'].value_counts()
Survived_f = data_train.Survived[data_train.Sex == 'female'].value_counts()
df=pd.DataFrame({u'男性':Survived_m, u'女性':Survived_f})
df.plot(kind='bar', stacked=True)
plt.title(u"按性别看获救情况")
plt.xlabel(u"性别")
plt.ylabel(u"人数")
plt.show()

seaborn.countplot关键字传递画堆积图_第4张图片

你可能感兴趣的:(matplotlib)