之前的文章关注的是两个变量都是数值变量的情况,当有一个变量是分类变量的时候,我们就需要其他类型的图形来展示分析数据。在seaborn中有多种类型的图形且非常易于上手。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
sns.set(style="whitegrid",font_scale=1.4,context="paper")
# 设置风格、尺度
import warnings
warnings.filterwarnings('ignore')
# 不发出警告
seaborn中,分类图主要分为三个部分:分类散点图:stripplot(默认,kind = "strip")
swarmplot(kind = "swarm")
分类分布图:boxplot(kind="box")
violinplot(kind="violin")
boxenplot(kind="boxen")
分类估计图:pointplot(kind="point")
barplot(kind="bar")
countplot(kind="count")
以上三种系列分别代表了不同粒度级别的数据。当然,在实际使用的过程中,其实没有必要记住这么多,因为seaborn中的分类系列有统一的图形界面catplot(),只需要这一个函数,就能访问所有分类图像类型。
分类散点图
seaborn.stripplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, jitter=True, dodge=False, orient=None, color=None, palette=None, size=5, edgecolor='gray', linewidth=0, ax=None, **kwargs)jitter : 是否抖动,True,false or float
dodge : 当有hue参数时,是否沿轴分离不同颜色
orient : 图形方向,垂直(“v”)或者水平("h")
# 1、catplot() 默认情况下,kind='strip'
# 按照不同类别对样本数据进行分布散点图绘制
tips = sns.load_dataset("tips")
print(tips.head())
# 加载数据
sns.catplot(x="day", # x → 设置分组统计字段
y="total_bill", # y → 数据分布统计字段
# 这里xy数据对调,将会使得散点图横向分布
data=tips, # data → 对应数据
jitter = True, height=6,
#当点数据重合较多时,jitter可以控制点抖动,也可以设置间距如:jitter = 0.1
s = 6, edgecolor = 'w',linewidth=1,marker = 'o' ,
# 设置点的大小、描边颜色或宽度、点样式
)
-------------------------------------------------------
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
# 1、stripplot()
# 通过kind='swarm' 来调整点防止重合
sns