分类数据可视化 - 统计图
barplot() / countplot() / pointplot()
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inline#设置风格、尺度sns.set_style("whitegrid") sns.set_context("paper")#屏蔽警告import warningswarnings.filterwarnings('ignore')
1. 柱状图 - 置信区间估计
置信区间:样本均值+抽样误差
# 加载数据titanic = sns.load_dataset('titanic')sns.barplot(x='sex', y='survived', hue='class', data=titanic, palette='hls', order=['male', 'female'], # 类别筛选capsize=0.05, # 误差线横向延伸宽度saturation=0.8, # 颜色饱和度errcolor='gray', errwidth=2, # 误差线颜色,宽度ci='sd' # 置信区间误差 -> 0-100内值、sd 、 None)#print(titanic.groupby(['sex', 'class']).mean()['survived'])#print(titanic.groupby(['sex','class']).std()['survived'])#titanic.head()
# 柱状图 - 置信区间估计# 加载数据tips = sns.load_dataset('tips')sns.barplot(x='day', y='total_bill', hue='sex', data=tips, palette='Blues', edgecolor='w')tips.groupby(['day','sex']).mean()
多柱状图 - 置信区间估计
# 加载数据crashes = sns.load_dataset('car_crashes').sort_values('total', ascending=False)#print(crashes.head())# 创建图表f, ax = plt.subplots(figsize=(6,15))sns.set_color_codes('pastel')# 设置第一个柱状图sns.barplot(x='total', y='abbrev', data=crashes, label='Total', color='b', edgecolor='w')# 设置第二个柱状图sns.set_color_codes('muted')sns.barplot(x='alcohol', y='abbrev', data=crashes, label='Alcohol-involved', color='b', edgecolor='w')ax.legend(ncol=2, loc='lower right') # 图例位置,右下角sns.despine(left=True, bottom=True) # 不显示左侧和低侧轴
计数柱状图:countplot()
sns.countplot(x='class', hue='who', data=titanic, palette='magma')#sns.countplot(y='class', hue='who', data=titanic, palette='magma')# x/y -> 以x或者y轴绘图(横向、竖向)# 用法和barplot相似
折线图 - 置信区间估计:pointplot()
# 折线图 - 置信区间估计:pointplot()sns.pointplot(x='time', y='total_bill', hue='smoker', data=tips,palette='hls',dodge=True, # 设置点是否分开join=True, # 是否连线makers=['o', 'x'], linestyles=['-', '--'] # 设置点的样式、线型)# 计算数据# 用法和barplot相似tips.groupby(['time', 'smoker']).mean()['total_bill']