数据可视化(8)-Seaborn系列 | 分类散点图stripplot()
- 2019 年 10 月 7 日
- 笔记
分类散点图
stripplot()可以自己实现对数据分类的展现,也可以作为盒形图或小提琴图的一种补充,用来显示所有结果以及基本分布情况。
函数原型
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)
参数解读

x,y,hue:数据字段变量名(如上表,date,name,age,sex为数据字段变量名) 作用:根据实际数据,x,y常用来指定x,y轴的分类名称, hue常用来指定第二次分类的数据类别(用颜色区分) data: DataFrame,数组或数组列表 order,hue_order:字符串行表 作用:显式指定分类顺序,eg. order=[字段变量名1,字段变量名2,...] jitter : float类型,True/1 作用:当数据重合较多时,用该参数做一些调整,也可以设置间距 如,jitter = 0.1 (通俗讲,就是让数据分散开) dodge:bool 作用:若设置为True则沿着分类轴,将数据分离出来成为不同色调级别的条带, 否则,每个级别的点将相互叠加 orient:方向:v或者h 作用:设置图的绘制方向(垂直或水平), 如何选择:一般是根据输入变量的数据类型(dtype)推断出来。 color:matplotlib 颜色 palette:调色板名称,list类别或者字典 作用:用于对数据不同分类进行颜色区别 size:float 作用:设置标记大小(标记直径,以磅为单位) edgecolor:matplotlib color,gray 作用:设置每个点的周围线条颜色 linewidth:float 作用:设置构图元素的线宽度
案例教程
import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例1: 水平散点图 """ sns.stripplot(x=tips["total_bill"]) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例2: 根据x的类别进行分组统计 """ sns.stripplot(x="day",y="total_bill", data=tips) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例3: 设置jitter来增加数据的抖动(当数据重合较多时,可以让数据更加分散一些) 可以比较案例2和案例3 """ sns.stripplot(x="day", y="total_bill", data=tips, jitter=True) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例4: 设置jitter来增加数据的抖动(当数据重合较多时,可以让数据更加分散一些) 可以比较案例2、案例3和案例4 """ sns.stripplot(x="day", y="total_bill", data=tips, jitter=0.3) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例5: 绘制水平方向的分类散点图 可以对案例1和案例5 进行比较 """ sns.stripplot(x="total_bill", y="day", data=tips,jitter=True) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例6: 给数据点绘制轮廓,linewidth值越大,轮廓越粗 """ sns.stripplot(x="total_bill", y="day", data=tips, jitter=True, linewidth=2) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例7: 设置hue对每个分组中进行第二次分类(x=sex进行第一次数据分组, hue=day对每一组进行数据分类) """ sns.stripplot(x="sex", y="total_bill", hue="day", data=tips, jitter=True) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例8: 设置dodge将数据在分类组中分离出来 """ sns.stripplot(x="day", y="total_bill", hue="smoker", data=tips, jitter=True, palette="Set2",dodge=True) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例9: 通过设置order来显式指定分类顺序 order=[字段变量名1,字段变量名2,...] """ sns.stripplot(x="time", y="tip", data=tips, order=["Dinner", "Lunch"]) plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例10: 设置要绘制的点的大小(size)以及点的标记(marker="D") 饱和度alpha """ sns.stripplot("day", "total_bill", "smoker", data=tips, palette="Set2", size=20, marker="D", edgecolor="gray", alpha=.25) plt.show()

import seaborn as sns import matplotlib.pyplot as plt import numpy as np #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例11: 根据数据情况绘制箱图和分类散点图 在箱图上绘制分类散点图 """ sns.boxplot(x="tip", y="day", data=tips, whis=np.inf) sns.stripplot(x="tip", y="day", data=tips, jitter=True, color=".3") plt.show()

import seaborn as sns import matplotlib.pyplot as plt #设置风格 sns.set(style="whitegrid") # 构建数据 tips = sns.load_dataset("tips") """ 案例10: 根据数据情况绘制小提琴图和分类散点图 在小提琴图上绘制分类散点图 """ sns.violinplot(x="day", y="total_bill", data=tips, inner=None, color=".8") sns.stripplot(x="day", y="total_bill", data=tips, jitter=True) plt.show()

案例地址
案例代码已上传:Github https://github.com/Vambooo/SeabornCN
整理制作:数据分析与可视化学研社
