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.rhkb.cn/news/365776.html

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

相关文章

DP:子数组问题

文章目录 引言子数组问题介绍动态规划的基本概念具体问题的解决方法动态规划解法:关于子数组问题的几个题1.最大子数组和2.环形子数组的最大和3.乘积最大子数组4.乘积为正数的最长子数组长度5.等差数列划分 总结 引言 介绍动态规划(DP)在解决…

Deep-LIBRA:一种用于可靠量化乳腺密度的人工智能方法,并在乳腺癌风险评估中进行了独立验证| 文献速递-深度学习自动化疾病检查

Title 题目 Deep-LIBRA: An artificial-intelligence method for robust quantification of breast density with independent validation in breast cancer risk assessment Deep-LIBRA:一种用于可靠量化乳腺密度的人工智能方法,并在乳腺癌风险评估中…

【内网渗透】从0到1的内网渗透基础概念笔记

目录 域 域的介绍 单域 父域和子域 域树 域森林 域名服务器 活动目录 活动目录介绍 域内权限 组 域本地组 全局组 通用组 总结 示例 A-G-DL-P策略 重要的域本地组 重要的全局组、通用组 安全域划分 域 域的介绍 Windows域是计算机网络的一种形式&#xf…

【机器学习】FFmpeg+Whisper:二阶段法视频理解(video-to-text)大模型实战

目录 一、引言 二、FFmpeg工具介绍 2.1 什么是FFmpeg 2.2 FFmpeg核心原理 2.3 FFmpeg使用示例 三、FFmpegWhisper二阶段法视频理解实战 3.1 FFmpeg安装 3.2 Whisper模型下载 3.3 FFmpeg抽取视频的音频 3.3.1 方案一:命令行方式使用ffmpeg 3.3.2 方案二&a…

[论文精读]Variational Graph Auto-Encoders

论文网址:[1611.07308] Variational Graph Auto-Encoders (arxiv.org) 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎…

Android 界面库 (二) 之 Data binding 详细介绍

1. 简介 回顾我们在前面文章《Android 界面库 (一) 之 View binding 简单使用》中学习的 View Binding,它旨在简化 View 与代码之间的绑定过程。它会在编译时期为每个 XML 布局文件生成相应的绑定类(Binding class),该类里包含了布局文件每个有 ID 的 Vi…

基于SpringBoot扶农助农政策管理系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

利用 Docker 简化 Nacos 部署:快速搭建 Nacos 服务

利用 Docker 简化 Nacos 部署:快速搭建 Nacos 服务 引言 在微服务架构中,服务注册与发现是确保服务间通信顺畅的关键组件。Nacos(Dynamic Naming and Configuration Service)作为阿里巴巴开源的一个服务发现和配置管理平台&…

【单片机毕业设计选题24039】-基于单片机的太阳能储能智能恒温外卖柜设计

系统功能: 以单片机为控制核心,综合运用传感器、物联网、太阳能等技术,设计一种基于单片机为控制核心的智能恒温外卖柜。它由恒温系统、无线模块、智能提醒系统、供电系统等组成,通过太阳能电池板独立供电,利用太阳能储能元件驱动…

Linux网络编程:套接字编程

1.Socket套接字编程 1.1.什么是socket套接字编程 Socket套接字编程 是一种基于网络层和传输层网络通信方式,它允许不同主机上的应用程序之间进行双向的数据通信。Socket是网络通信的基本构件,它提供了不同主机间的进程间通信端点的抽象。一个Socket就是…

免费开源的后端API服务-supabase安装和使用-简直是前端学习者福音

文章目录 它是什么安装和部署关于安装关于部署1、注册用户2、创建组织3、创建项目 创建数据库表(填充内容)填充数据库表 使用postman联调API 它是什么 一个开源免费的后端框架,firebase的替代品。可以简单理解类似于headless cms&#xff0c…

浅谈定时器之泊松随机定时器

浅谈定时器之泊松随机定时器 “泊松随机定时器”(Poisson Random Timer),它允许你基于泊松分布来随机化请求之间的延迟时间,这对于模拟具有随机到达率的事件特别有用,如用户访问网站或服务的请求。 泊松分布简介 泊松分布是一种统计与概率…

HarmonyOS开发探索:父子组件手势绑定问题处理

场景一:父子组件同时绑定手势的冲突处理 效果图 方案 在默认情况下,手势事件为非冒泡事件,当父子组件绑定相同的手势时,父子组件绑定的手势事件会发生竞争,最多只有一个组件的手势事件能够获得响应,默认子…

有哪些方法可以恢复ios15不小心删除的照片?

ios15怎么恢复删除的照片?在手机相册里意外删除了重要的照片?别担心!本文将为你介绍如何在iOS 15系统中恢复已删除的照片。无需专业知识,只需要按照以下步骤操作,你就能轻松找回宝贵的回忆。 一、从iCloud云端恢复删除…

Transformer动画讲解 - 工作原理

Transformer模型在多模态数据处理中扮演着重要角色,其能够高效、准确地处理包含不同类型(如图像、文本、音频、视频等)的多模态数据。 Transformer工作原理四部曲:Embedding(向量化)、Attention(注意力机制)、MLPs(多层感知机)和Unembedding(模型输出)。 阶段一:…

网上下载的PDF文件为何不能复制文字?该怎么办呢?

不知道大家有没有到过这种情况?在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 首先,有可能PDF文件是扫描文件,是扫描文件的话&…

Gradle学习-4 创建二进制插件工程

二进制插件工程创建有两种方式: 创建独立的工程,调试的时候,需要手动发布成一个二进制插件jar包,给其他工程里面引用,进行功能测试。这种方式是比较麻烦的。创建buildSrc子工程,它是一个大工程中的子工程&…

云计算【第一阶段(19)】磁盘管理与文件系统 LVM与磁盘配额(二)

目录 一、LVM概述 1.1、LVM机制的基本概念 ​编辑 1.2、LVM的管理命令 1.3、lvm存储 两种机制 1.4、lvm应用实例 二、磁盘配额概述 2.1、设置磁盘配额 2.2.1、实现磁盘限额的条件 2.2.2、linux磁盘限额的特点 2.2.3、磁盘配额管理 一、LVM概述 1.1、LVM机制的基本概…

大模型ReAct:思考与工具协同完成复杂任务推理

ReAct: Synergizing Reasoning and Acting in Language Models Github:https://github.com/ysymyth/ReAct 一、动机 人类的认知通常具备一定的自我调节(self-regulation)和策略制定(strategization)的能力&#xff0…

Java案例抢红包

目录 一:题目要求: 二:思路分析:(遇见问题先想出完整的思路逻辑再去动手事半功倍) 三:具体代码: 一:题目要求: 二:思路分析:&#x…