seaborn系列 (12) | 增强箱图boxenplot()

mac2022-06-30  20

目录

增强箱图函数原型参数解读案例教程案例地址

增强箱图

增强箱图又称增强盒形图,可以为大数据集绘制增强的箱图。 增强箱图通过绘制更多的分位数来提供数据分布的信息。

函数原型

seaborn.boxenplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, width=0.8, dodge=True, k_depth='proportion', linewidth=None, scale='exponential', outlier_prop=None, ax=None, **kwargs)

参数解读

x,y,hue:数据字段变量名(如上表,date,name,age,sex为数据字段变量名) 作用:根据实际数据,x,y常用来指定x,y轴的分类名称,hue常用来指定第二次分类的数据类别(用颜色区分) data: DataFrame,数组或数组列表 order,hue_order:字符串列表 作用:显式指定分类顺序,eg. order=[字段变量名1,字段变量名2,...] orient:方向:v或者h 作用:设置图的绘制方向(垂直或水平),如何选择:一般是根据输入变量的数据类型(dtype)推断出来。 color:matplotlib 颜色 palette:调色板名称,list类别或者字典 作用:用于对数据不同分类进行颜色区别 saturation 饱和度:float width宽度: float dodge:bool 作用:若设置为True则沿着分类轴,将数据分离出来成为不同色调级别的条带,否则,每个级别的点将相互叠加 linewidth:float 作用:设置构图元素的线宽度

案例教程

案例代码已上传:Github地址

import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例1: 绘制一个简单的水平增强箱图 """ sns.boxenplot(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和y来对数据进行分组 """ sns.boxenplot(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: 通过设置hue对分组数据进行第二次分类(通过颜色区别) 注意:在增强箱图中,对hue设置后的第二次分类的效果是分离 """ sns.boxenplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set3") plt.show()

import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") # 读取数据 tips = sns.load_dataset("tips") """ 案例4: 当某些箱为空时,绘制带有嵌套分组的增强箱图 """ sns.boxenplot(x="day", y="total_bill", hue="time", data=tips, linewidth=2.5) plt.show()

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

import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 iris = sns.load_dataset("iris") """ 案例 a """ iris[:5]

import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 iris = sns.load_dataset("iris") """ 案例6: 为DataFrame中的每一个变量绘制一个方框图 结合案例a """ sns.boxenplot(data=iris, orient="h", palette="Set2") plt.show()

import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 iris = sns.load_dataset("iris") """ 案例7: 在增强箱图上绘制分类散点图 """ sns.boxenplot(x="day", y="total_bill", data=tips) sns.stripplot(x="day", y="total_bill", data=tips, size=4, jitter=True, color="gray") plt.show()

import seaborn as sns import matplotlib.pyplot as plt # 设置样式风格 sns.set(style="whitegrid") # 构建数据 iris = sns.load_dataset("iris") """ 案例8: 利用catplot()来实现boxenplot()的效果(通过指定kind="boxen") """ sns.catplot(x="sex", y="total_bill", hue="smoker", col="time", data=tips, kind="boxen", height=4, aspect=.7); plt.show()

案例地址

上述案例代码已上传:Github地址 Github地址https://github.com/Vambooo/SeabornCN

更多技术干货在公众号:数据分析与可视化学研社

最新回复(0)