百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

我用Python的Seaborn库,绘制了15个超好看图表!

off999 2024-10-02 18:43 27 浏览 0 评论

大数据文摘受权转载自法纳斯特
Seaborn是一个基于Python语言的数据可视化库,它能够创建高度吸引人的可视化图表。
在Matplotlib库的基础上,提供了更为简便的API和更为丰富的可视化函数,使得数据分析与可视化变得更加容易。
Seaborn的设计哲学是以美学为中心,致力于创建最佳的数据可视化。
同时也保持着与Python生态系统的高度兼容性,可以轻松集成到Python数据分析以及机器学习的工作流程中。
今天,小F就给大家介绍如何使用Seaborn制作15种不同类型的可视化图表。
具体图表类型,包含条形图、散点图、直方图、折线图、小提琴图、箱线图、热力图、点图、密度图、计数图、分簇散点图、特征图、Facet Grid、联合分布图、分类图。
首先使用pip安装Seaborn。
pip install seaborn
Seaborn提供了一些内置的数据集,如iris、tips、dots、glue等。
你可以在GitHub上看到更多的数据集。
https://github.com/mwaskom/seaborn-data
这里我们使用的是Seaborn的Iris数据集。
Iris也称鸢尾花数据集,是一类多重变量分析的数据集。
通过花萼长度、花萼宽度、花瓣长度、花瓣宽度4个属性来预测鸢尾花属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。
import matplotlib.pyplot as pltimport seaborn as snsimport pandas as pd
print('\n')data = pd.read_csv('iris.csv')print(data[10:15])
结果如下。
查看不同种类数量情况。
print(data['species'].value_counts())
结果如下。
01. 柱状图

柱状图通常被用于表示分类变量,它只显示平均值(或其他参数值)。
为了使用这个图,为x轴选择一个分类列(物种),为y轴选择一个数值列(花瓣长度)。
sns.barplot(x='species', y='petal_length', hue='species', data=data)plt.show()
可以看到创建了一个每个分类列取平均值的图。
花瓣长度与物种间关系的条形图(基于鸢尾数据集)。
02. 散点图
散点图是由几个数据点组成的图。
使用x轴表示花瓣长度,y轴表示数据集的萼片长度,制作散点图。
sns.scatterplot(x='petal_length', y='sepal_length', hue='species', style='species', s=90, data=data)plt.show()
结果如下。
在这里,我们看到不同物种的花瓣长度和萼片长度之间有很强的关系。
03. 直方图
直方图通常用于可视化单个变量的分布,不过也可用于比较两个或更多变量的分布。
除了直方图之外,KDE参数还可以用来显示核密度估计(KDE)。
这里使用鸢尾花数据集的萼片长度来制作直方图。
sns.histplot(x='sepal_length', kde=True, data=data)plt.show()
结果如下。
两个变量的直方图。
sns.histplot(x='sepal_length', kde=True, hue='species', data=data)plt.show()
结果如下。
04. 折线图
折线图是一种通用的图表,可以用来可视化各种不同的关系。
该图表易于创建和分析,并且可以用于有效地交流数据。
在折线图中,每个数据点都是由直线连接。
这里在x轴上使用花瓣长度,在y轴上使用花瓣宽度。
sns.lineplot(x='petal_length', y='petal_width', data=data)plt.show()
结果如下。
05. 小提琴图
小提琴图表示数据的密度,类似于散点图,并像箱线图一样表示分类数据。
数据的密度越大的区域越胖。小提琴形状表示数据的核密度估计,形状在每个点的宽度表示该点的数据密度。
这里使用x轴表示物种,y轴表示花瓣长度。
sns.violinplot(x='species', y='petal_length', data=data, hue='species')plt.show()
结果如下。
06. 箱线图
箱线图由一个箱形图和两个须状图组成。
它表示四分位数范围(IQR),即第一和第三四分位数之间的范围。中位数由框内的直线表示。
晶须从盒子边缘延伸到最小值和最大值的1.5倍IQR。
异常值是落在此范围之外的任何数据点,并单独显示。
这里使用x轴表示种数,y轴表示萼片长度。
sns.boxplot(x='species', y='sepal_length', data=data, hue='species')plt.show()
结果如下。
07. 热力图
热力图是数据的二维可视化表示,使用颜色来显示变量的值。
热力图经常用于显示数据集中的各种变量的关联关系,使用corr方法来实现。
heat_corr = data.corr()sns.heatmap(heat_corr, annot=True)plt.show()
结果如下。
08. 点线图
点线图是一种统计图表,用于显示一组数据及其变异性的平均值或集中趋势。
点线图通常用于探索性数据分析,以快速可视化数据集的分布或比较多个数据集。
本例中的每个数据点表示为单个点,而水平线表示平均值。
sns.pointplot(x='species', y='petal_length', data=data, markers='^', color='g')plt.show()
结果如下。
09. 密度图
密度图通过估计连续随机变量的概率函数来表示数据集的分布,也称为核密度估计(KDE)图。
sns.kdeplot(x='petal_length', data=data, hue='species', multiple='stack')plt.show()
结果如下。
上图可以清晰的看出花瓣长度与物种之间的关系。
还可以修改密度图的显示方式,和等高线有点像。
sns.kdeplot(x='petal_length', y='sepal_length', data=data, hue='species')plt.show()
结果如下。
10. 计数图
计数图是一种分类图,它显示了分类变量的每个类别中观测值的计数。
它本质上是一个柱状图,其中每个柱的高度代表特定类别的观测值的数量。
计算数据集中每个物种的样本总数。
sns.countplot(x='species', data=data)plt.show()
结果如下。
从上图可以看出,每个物种在数据集中包含相同数量的样本。
11. 分簇散点图
分簇散点图和条形图挺相似的。
不同之处在于,这些点会重叠出现,这样有助于更好地表示值的分布情况。
sns.swarmplot(x='sepal_width', y='species', data=data, hue='species', dodge=True, orient='h', size=8)plt.show()
结果如下。
在上图中,每个数据点表示为一个点,并且这些点的排列使得它们在分类轴上不会相互重叠。
在这里,所有萼片宽度数据点以不同的方式代表每个物种的一个点。
12. 特征图
特征图可视化了数据集中变量之间的两两关系。
创建了一个坐标轴网格,将所有数值数据点将在彼此之间创建一个图,在x轴上具有单列,y轴上具有单行。
对角线图是单变量分布图,它绘制了每列数据的边际分布。
sns.set(rc={"figure.figsize": (6, 3)})sns.pairplot(data=data, hue='species')plt.show()
结果如下。
上图表示鸢尾花数据集中所有变量之间的关系。
13. FacetGrid
Seaborn中的FacetGrid函数将数据集的一个或多个分类变量作为输入,然后创建一个图表网格,每种类别变量的组合都有一个图表。
网格中的每个图都可以定制为不同类型的图,例如散点图、直方图或箱形图,具体取决于要可视化的数据。
在这里,制作了每个物种花瓣长度的图表。
g = sns.FacetGrid(data, col="species", height=4, hue='species')g.map(sns.histplot, "petal_length")plt.show()
结果如下。
14. 联合分布图
联合分布图将两个不同类型的图表组合在一个表中,展示两个变量之间的关系(二元关系)。
sns.jointplot(x="sepal_length", y="sepal_width", data=data, palette='Set2', hue='species')plt.show()
结果如下。
在上面的图表中,中间区域绘制了散点图,边侧则是密度图。
15. 分类图
cat图(分类图缩写)是Seaborn中的一种图表,可以用来可视化数据集中一个或多个分类变量与连续变量之间的关系。
它可用于显示分布、比较组或显示不同变量之间的关系。
sns.catplot(data=data, x="petal_length", y="species", kind="violin", color=".9", inner=None)sns.swarmplot(data=data, x="petal_length", y="species", size=3)plt.show()
结果如下。
这里可以看出鸢尾数据集中花瓣长度与物种之间的关系。
好了,今天的分享到此就结束了~
Seaborn作为一个强大的可视化模块,在数据分析机器学习有很大的作用。
但其功能远不止上述内容,如果想更加深入了解,可以访问其官网地址或者中文文档。



租!AI云资源
新上线一批A100/A800
运营商机房,服务有保障

扫码了解详情?





相关推荐

Alist 玩家请进:一键部署全新分支 Openlist,看看香不香!

Openlist(其前身是鼎鼎大名的Alist)是一款功能强大的开源文件列表程序。它能像“万能钥匙”一样,解锁并聚合你散落在各处的云盘资源——无论是阿里云盘、百度网盘、GoogleDrive还是...

白嫖SSL证书还自动续签?这个开源工具让我告别手动部署

你还在手动部署SSL证书?你是不是也遇到过这些问题:每3个月续一次Let'sEncrypt证书,忘了就翻车;手动配置Nginx,重启服务,搞一次SSL得花一下午;付费证书太贵,...

Docker Compose:让多容器应用一键起飞

CDockerCompose:让多容器应用一键起飞"曾经我也是一个手动启动容器的少年,直到我的膝盖中了一箭。"——某位忘记--link参数的运维工程师引言:容器化的烦恼与...

申请免费的SSL证书,到期一键续签

大家好,我是小悟。最近帮朋友配置网站HTTPS时发现,还有人对宝塔面板的SSL证书功能还不太熟悉。其实宝塔早就内置了免费的Let'sEncrypt证书申请和一键续签功能,操作简单到连新手都能...

飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx

前面分享了两期TVGate:Q大的转发代理工具TVGate升级了,操作更便捷,增加了新的功能跨平台内网转发神器TVGate部署与使用初体验现在项目已经开源,并支持Docker部署,本文介绍如何通...

Docker Compose 编排实战:一键部署多容器应用!

当项目变得越来越复杂,一个服务已经无法满足需求时,你可能需要同时部署数据库、后端服务、前端网页、缓存组件……这时,如果还一个一个手动dockerrun,简直是灾难这就是DockerCompo...

深度测评:Vue、React 一键部署的神器 PinMe

不知道大家有没有这种崩溃瞬间:领导突然要看项目Demo,客户临时要体验新功能,自己写的小案例想发朋友圈;找运维?排期?还要走工单;自己买服务器?域名、SSL、Nginx、防火墙;本地起服务?断电、关...

超简单!一键启动多容器,解锁 Docker Compose 极速编排秘籍

想要用最简单的方式在本地复刻一套完整的微服务环境?只需一个docker-compose.yml文件,你就能一键拉起N个容器,自动组网、挂载存储、环境隔离,全程无痛!下面这份终极指南,教你如何用...

日志文件转运工具Filebeat笔记_日志转发工具

一、概述与简介Filebeat是一个日志文件转运工具,在服务器上以轻量级代理的形式安装客户端后,Filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并将来自...

K8s 日志高效查看神器,提升运维效率10倍!

通常情况下,在部署了K8S服务之后,为了更好地监控服务的运行情况,都会接入对应的日志系统来进行检测和分析,比如常见的Filebeat+ElasticSearch+Kibana这一套组合...

如何给网站添加 https_如何给网站添加证书

一、简介相信大家都知道https是更加安全的,特别是一些网站,有https的网站更能够让用户信任访问接下来以我的个人网站五岁小孩为例子,带大家一起从0到1配置网站https本次配置的...

10个Linux文件内容查看命令的实用示例

Linux文件内容查看命令30个实用示例详细介绍了10个Linux文件内容查看命令的30个实用示例,涵盖了从基本文本查看、分页浏览到二进制文件分析的各个方面。掌握这些命令帮助您:高效查看各种文本文件内...

第13章 工程化实践_第13章 工程化实践课

13.1ESLint+Prettier代码规范统一代码风格配置//.eslintrc.jsmodule.exports={root:true,env:{node...

龙建股份:工程项目中标_龙建股份有限公司招聘网

404NotFoundnginx/1.6.1【公告简述】2016年9月8日公告,公司于2016年9月6日收到苏丹共和国(简称“北苏丹”)喀土穆州基础设施与运输部公路、桥梁和排水公司出具的中标通知书...

福田汽车:获得政府补助_福田 补贴

404NotFoundnginx/1.6.1【公告简述】2016年9月1日公告,自2016年8月17日至今,公司共收到产业发展补助、支持资金等与收益相关的政府补助4笔,共计5429.08万元(不含...

取消回复欢迎 发表评论: