141个图表,完美展示数据分类别关系!

本文介绍使用Python工具seaborn详细实现分类关系图表,包含8类图141个代码模版。

分类关系图表用于展示数字变量和一个或多个分类变量之间的关系,可以进一步分为:箱形图(box plot)、增强箱形图(enhanced box plot)、小提琴图(violin plot)、抖动散点图(jitter plot)、蜂群图(beeswarm plot)、点图(point plot)、柱状图(bar plot)、分类柱状图(count plot )。

所有模版👉:12.3万字+500多张图形+8000行代码......


 柱状图(bar plot)

柱状图(bar plot)表示了一个数值变量的聚合或统计估计(比如和,中值,均值,详细介绍见后章节9.3.2.6 柱状图-6类统计方式),每个矩形的高度表示该估计,同时使用误差条指示该估计的不确定性。

例如,柱状图-6类统计方式 ,

统计方式,即柱子高度代表变量的'mean', 'median','sum','min','max'或者'std'之一,用图展示各中统计方式差异,

estimators = ['mean', 'median', 'sum', 'min', 'max', 'std']  #6种统计方式
fig, axs = plt.subplots(2, 3, figsize=(15, 10))
for i, estimator in enumerate(estimators):row = i // 3col = i % 3sns.barplot(x='企鹅的种类',y='喙长 (毫米)',data=penguins,estimator=estimator,  #设置不同的统计方式ax=axs[row, col],color="#a8a6a7")axs[row, col].set_title(f'统计方式: {estimator}')plt.tight_layout()
plt.show()

例如,柱状图-多子图,

sns.catplot(data=penguins,x="性别",y="喙长 (毫米)",col="企鹅的种类",  #列按照"岛屿"分面kind="bar",palette=["#006a8e", "#b1283a"],
)


分类柱状图(count plot )

分类柱状图(count plot )使用柱状图显示每个分类箱中的观测计数,这类图要区别于上文章节9.3.2 柱状图,用于直接显示每个类别中的观测数量,而不是间接统计计算一个新的统计量。

例如,分组分类柱状图,

g = sns.countplot(data=penguins,x="企鹅的种类",hue="性别",palette=["#006a8e", "#b1283a"],
)
#添加柱值文本标签
g.bar_label(g.containers[0], fontsize=10)
g.bar_label(g.containers[1], fontsize=10)


箱形图(box plot)

箱形图(box plot)直观地展示数据的关键指标(如下四分位数Q1、上四分位数Q3、中位数、平均值、异常值点),如下图,

通过箱图可比较几组数据的分布情况,检查数据异常值,比较不同分布数据的偏态和尾重等。

例如,单组箱图,

sns.catplot(data=titanic,y="年龄",showmeans=True,  #显示平均数meanline=True, #显示平均数线meanprops={  #平均数线个性化'linestyle': '--', #线型'color': '#b1283a', #线颜色'linewidth': 1, #线宽},kind="box",width=0.1,color="#a8a6a7")

例如,多子图箱图,

sns.catplot(data=titanic,x="登船港口",y="年龄",hue="性别",col="船票等级",  #列按照"船票等级"分面row="获救情况",  #行按照"获救情况"分面width=0.7,linewidth=0.6,kind="box",palette=["#006a8e", "#b1283a"])


增强箱形图(enhanced box plot)

增强箱形图(enhanced box plot),又称作“Letter-value plots”,类似于箱形图,但是,能展示更多的分位数,提供更多关于数据分布形状的信息,特别是在尾部数据和异常值数据中,它更适用于较大的数据集(数据size:10,000-100,000),

早期也是由Hadley Wickham等大佬提出,进一步学习:Letter-value plots: Boxplots for large data

例如,分组增强箱形图-垂直方向,

sns.catplot(data=diamonds,x="净度",  #垂直方向按照"净度"分组y="价格 ($)",width=0.5,kind="boxen",color="#a8a6a7")

例如,分组增强箱形图-垂直方向,进一步分组,

sns.catplot(data=diamonds[diamonds['切工'].isin(['Fair', 'Very Good'])],x="净度",y="价格 ($)",hue="切工",width=0.8,kind="boxen",palette=["#006a8e", "#b1283a"],  #箱子颜色个性化设置


小提琴图(violin plot)

小提琴图(violin plot)本质上是由外部核密度图(上文章节“8.2 核密度图”)和内部箱形图(上文章节“9.1.1 箱形图”)两种基本图形结合而来的,核密度图展示数据概率密度(数据在某个值附近出现的频率,可展示数据在整个范围内的分布),箱形图展示数据分布状态(例如中位数,平均值,分位数,异常值等)!

例如,分组小提琴图, 

sns.catplot(data=titanic,x="船票等级1",y="年龄",hue="性别",  #颜色随着"性别"变化width=0.7,kind="violin",color="#a8a6a7")


抖动散点图(jitter plot)

抖动散点图(jitter plot),是一类特殊的散点图,在一般散点图的基础上通过添加一些小幅度的随机抖动(jitter),调整分类轴上点的位置,在统计图表中,抖动可以使数据点在某个方向上稍微分散,以更清晰地展示分布。

例如,分组抖动散点图,

sns.catplot(data=tips,y="消费金额 ($)",x="客人性别",hue="是否吸烟",dodge=True,  #和hue一起使用,对x指定的变量进一步分组size=12,alpha=0.5,kind="strip",palette=["#006a8e", "#b1283a"])


蜂群图(beeswarm plot)

蜂群图(beeswarm plot),似一群蜜蜂集聚在一起而得名,类似上文章节9.2.1抖动散点图,但是使用一种算法调整了点的位置(只沿着分类轴,注意区别于抖动散点图的随机抖动),以避免它们重叠。这样可以更好地展示数值的分布,但是对于大量的观测值来说不适用。

例如,分组蜂群图,

sns.catplot(data=tips,y="消费金额 ($)",x="客人性别",hue="是否吸烟",dodge=True,  #和hue一起使用,对x指定的变量进一步分组size=6,kind="swarm",palette=["#006a8e", "#b1283a"])


点图(point plot)

点图(point plot)通过点的位置表示数值变量的中心趋势估计,并使用误差条(error bar)来显示估计值的不确定性范围,可以集中地比较一个或多个分类变量的不同水平。

例如,点图-4类误差棒方案 ,

errorbars = ['ci', 'pi', 'se', 'sd']  #4类误差棒方案
fig, axs = plt.subplots(2, 2, figsize=(12, 10))for i, errorbar in enumerate(errorbars):row = i // 2col = i % 2sns.pointplot(x='企鹅的种类',y='喙长 (毫米)',data=penguins,errorbar=errorbar,  #设置误差棒方案ax=axs[row, col],color="#a8a6a7")axs[row, col].set_title(f'误差棒方案: {errorbar}')
plt.tight_layout()
plt.show()


以上只展示部分模版,更多模版,

👉:12.3万字+500多张图形+8000行代码......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38669.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32第十四课:低功耗模式和RTC实时时钟

文章目录 需求一、低功耗模式1.睡眠模式2.停止模式3.待机模式 二、RTC实现实时时钟1.寄存器配置流程2.标准库开发3.主函数调用 三、需求实现代码 需求 1.实现睡眠模式、停止模式和待机模式。 2.实现RTC实时时间显示。 一、低功耗模式 电源对电子设备的重要性不言而喻&#xff…

UE5(c++)开发日志(3):将前面写的输出日志的方法进行封装

Public下新增一个c类: 选择无属性,因为不需要添加任何东西进去, 也不需要借助里面任何东西。 创建一个命名空间Debug,可以在命名空间内写一点静态方法 : namespace Debug{} static void Print(const FString& message, con…

Jenkins教程-12-发送html邮件测试报告

上一小节我们学习了发送钉钉测试报告通知的方法,本小节我们讲解一下发送html邮件测试报告的方法。 1、自动化用例执行完后,使用pytest_terminal_summary钩子函数收集测试结果,存入本地status.txt文件中,供Jenkins调用 #conftest…

全球AI新闻速递6.28

全球AI新闻速递 1.首款 Transformer 专用 AI 芯片 Sohu 登场。 2.钉钉:宣布对所有AI大模型厂商开放,首批7家接入。 3.华为联合清华大学发布《AI 终端白皮书》。 4.国家卫生健康委:推动AI技术在制定个性化营养、运动干预方案中的应用。 …

1Python的Pandas:基本简介

1. Pandas的简介 Pandas 是一个开源的 Python 数据分析库,由 Wes McKinney 在 2008 年开始开发,目的是为了解决数据分析任务中的各种需求。Pandas 是基于 NumPy 库构建的,它使得数据处理和分析工作变得更加快速和简单。Pandas 提供了易于使用…

项目实战--Spring Boot实现三次登录容错功能

一、功能描述 项目设计要求输入三次错误密码后,要求隔段时间才能继续进行登录操作,这里简单记录一下实现思路 二、设计方案 有几个问题需要考虑一下: 1.是只有输错密码才锁定,还是账户名和密码任何一个输错就锁定?2…

父子节点内容和个数提取

有时我们需要获得菜单的内容和个数,这个时候通常有父子菜单,那么怎么分别获取到他们呢?以下面的智慧物业管理系统为例,有7个父节点,每个父节点下面有子节点。如何把父节点名称和总数,以及子节点的名称和总数…

拆分盘投资策略解析:机制、案例与风险考量

一、引言 随着互联网技术的迅猛发展和金融市场的不断创新,拆分盘这一投资模式逐渐崭露头角,成为投资者关注的焦点。它基于特定的拆分策略,通过调整投资者持有的份额和单价,实现了看似稳健的资产增长。本文旨在深入探讨拆分盘的运…

鸿蒙开发设备管理:【@ohos.multimodalInput.inputEvent (输入事件)】

输入事件 InputEvent模块描述了设备上报的基本事件。 说明: 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import InputEvent from ohos.multimodalInput.inputEvent;InputEvent 系统能力…

WPS图片无法居中、居中按钮无法点击(是灰色的)

在PPT中复制对象到WPS word中后,导致图片一直靠左,而无法居中 直接选中图片是错误的: 这时你会发现居中按钮无法点击(是灰色的) 正确的是选中图片的前面的部分,然后点击居中,或者Ctrl E

昇思25天学习打卡营第10天|FCN图像语义分割

一、简介: 本篇博客是昇思大模型打卡营应用实践部分的第一次分享,主题是计算机视觉(CV)领域的FCN图像语义分割,接下来几天还会陆续分享其他CV领域的知识(doge)。 全卷积网络(Fully…

基于Java实现图像浏览器的设计与实现

图像浏览器的设计与实现 前言一、需求分析选题意义应用意义功能需求关键技术系统用例图设计JPG系统用例图图片查看系统用例图 二、概要设计JPG.javaPicture.java 三、详细设计类图JPG.java UML类图picture.java UML类图 界面设计JPG.javapicture.java 四、源代码JPG.javapictur…

深入理解pytest fixture:提升测试的灵活性和可维护性!

在现代软件开发中,测试是保证代码质量的重要环节。pytest作为一个强大的测试框架,以其灵活的fixture系统脱颖而出。本文将详细介绍pytest中的fixture概念,通过具体案例展示其应用,并说明如何利用fixture提高测试的灵活性和可维护性…

EKF+UKF+CKF+PF的效果对比|三维非线性滤波|MATLAB例程

前言 标题里的EKF、UKF、CKF、PF分别为:扩展卡尔曼滤波、无迹卡尔曼滤波、容积卡尔曼滤波、粒子滤波。 EKF是扩展卡尔曼滤波,计算快,最常用于非线性状态方程或观测方程下的卡尔曼滤波。 但是EKF应对强非线性的系统时,估计效果不如…

头文件没有string.h ----- 怎么统计字符串的长度?

字符串的逆序&#xff08;看收藏里面的题&#xff09; 第一种方式&#xff1a; #include <stdio.h> void f(char *p);int main() {char s[1000];gets(s);f(s);printf("%s",s);return 0; }void f(char *p) {int i0;int q,k0;while(p[i]!\0){i;}while(k<i){…

SaaS增长:小型SaaS企业可以使用推荐奖励计划吗

在SaaS&#xff08;软件即服务&#xff09;行业的激烈竞争中&#xff0c;如何快速有效地增长用户数量是每个企业都面临的挑战。对于小型SaaS企业来说&#xff0c;资源有限&#xff0c;如何最大化利用现有资源实现用户增长成为了一个重要议题。在这样的背景下&#xff0c;推荐奖…

git clone中的报错问题解决:git@github.com: Permission denied (publickey)

报错&#xff1a; Submodule path ‘kernels/3rdparty/llm-awq’: checked out ‘19a5a2c9db47f69a2851c83fea90f81ed49269ab’ Submodule path ‘kernels/3rdparty/nvbench’: checked out ‘75212298727e8f6e1df9215f2fcb47c8c721ffc9’ Submodule path ‘kernels/3rdparty/t…

自动点赞,自动评论,自动刷

最近周六日家里没事干了个自动程序。需要的找我&#xff01; 仅供学习&#xff01;&#xff01;&#xff01;&#xff01;目前实现的功能 1.自动打开痘印&#xff0c;头条等多个app 2.自动点赞&#xff0c;自动评论 3.自动养号 4.自动关注 后期逐步实现: 1.继续内容的自动…

阿里云:云通信号码认证服务,node.js+uniapp(vue),完整代码

api文档&#xff1a;云通信号码认证服务_云产品主页-阿里云OpenAPI开发者门户 (aliyun.com) reg.vue <template> <div> <input class"sl-input" v-model"phone" type"number" maxlength"11" placeholder"手机号…