当前位置: 首页 > news >正文

Python—数据可视化Seaborn大全:参数详解与实战案例全解析【第52篇—python:Seaborn大全】

文章目录

  • Seaborn库常用绘图详解与实战
    • 引言
    • 安装与导入
    • 一、散点图
      • 参数说明
      • 实战案例
    • 二、直方图
      • 参数说明
      • 实战案例
    • 三、线性关系图
      • 参数说明
      • 实战案例
    • 四、热力图
      • 参数说明
      • 实战案例
    • 五、分布图
      • 参数说明
      • 实战案例
    • 六、箱线图
      • 参数说明
      • 实战案例
    • 七、联合分布图
      • 参数说明
      • 实战案例
    • 八、小提琴图
      • 参数说明
      • 实战案例
    • 九、成对关系图
      • 参数说明
      • 实战案例
    • 十、自定义调色板
      • 参数说明
      • 实战案例
    • 结语

Seaborn库常用绘图详解与实战

引言

Seaborn 是一个基于 Matplotlib 的数据可视化库,它提供了一些高层次的接口,使得绘图变得更加简单和美观。本文将深入探讨 Seaborn 库的常用绘图功能,包括详细的参数说明和实战案例,帮助读者更好地理解和运用 Seaborn 进行数据可视化。

image-20240203115339576

安装与导入

首先,确保你已经安装了 Seaborn 库。如果没有安装,可以使用以下命令:

pip install seaborn

导入 Seaborn 通常使用以下方式:

import seaborn as sns
import matplotlib.pyplot as plt

一、散点图

散点图是一种常用于展示两个变量之间关系的图表。在 Seaborn 中,我们可以使用 sns.scatterplot() 函数来绘制。

参数说明

  • x:x轴上的数据
  • y:y轴上的数据
  • hue:指定颜色变量
  • style:指定样式变量
  • size:指定点的大小变量

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("iris")# 绘制散点图
sns.scatterplot(x="sepal_length", y="sepal_width", hue="species", style="species", size="petal_length", data=data)# 显示图例
plt.legend()
plt.title("散点图 - 花萼长度与宽度关系")
plt.show()

image-20240203115148706

二、直方图

直方图用于显示数据分布情况,Seaborn 中的 sns.histplot() 函数可以很方便地绘制直方图。

参数说明

  • data:数据集
  • x:x轴上的数据
  • hue:指定颜色变量
  • multiple:当有 hue 参数时,控制多层直方图的显示方式

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("tips")# 绘制直方图
sns.histplot(data=data, x="total_bill", hue="sex", multiple="stack", kde=True)# 显示图例
plt.legend()
plt.title("总消费金额直方图 - 性别分布")
plt.show()

三、线性关系图

Seaborn 提供了 sns.regplot() 函数来绘制线性回归图,展示两个变量之间的线性关系。

参数说明

  • x:x轴上的数据
  • y:y轴上的数据
  • hue:指定颜色变量
  • marker:指定数据点的标记
  • scatter_kws:控制散点图的其他属性

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("tips")# 绘制线性关系图
sns.regplot(data=data, x="total_bill", y="tip", hue="sex", marker="o", scatter_kws={"s": 100})# 显示图例
plt.legend()
plt.title("线性关系图 - 消费金额与小费")
plt.show()

四、热力图

热力图是一种以颜色变化来显示数据矩阵的图表,常用于展示相关性或模式。Seaborn 中的 sns.heatmap() 函数是绘制热力图的利器。

参数说明

  • data:数据集,通常是一个二维矩阵
  • cmap:指定颜色映射
  • annot:在每个单元格显示数值
  • linewidthslinecolor:控制单元格之间的线条宽度和颜色

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("flights")
pivot_data = data.pivot_table(index="month", columns="year", values="passengers")# 绘制热力图
sns.heatmap(data=pivot_data, cmap="YlGnBu", annot=True, linewidths=.5, linecolor="white")plt.title("月度乘客数热力图")
plt.show()

五、分布图

Seaborn 的 sns.distplot() 函数可以绘制直方图并拟合核密度估计,用于展示单变量的分布情况。

参数说明

  • a:绘制分布图的数据
  • hist:是否显示直方图
  • kde:是否显示核密度估计曲线
  • rug:在 x 轴上绘制小的竖线,表示每个观测值的分布

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("iris")# 绘制分布图
sns.distplot(data["sepal_length"], hist=True, kde=True, rug=True)plt.title("花萼长度分布图")
plt.show()

六、箱线图

箱线图是一种展示数据分布的图表,Seaborn 中的 sns.boxplot() 函数可以绘制箱线图。

参数说明

  • xy:数据集中的变量
  • hue:指定颜色变量
  • notch:是否绘制缺口箱线图
  • whis:确定离群值的位置

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("tips")# 绘制箱线图
sns.boxplot(data=data, x="day", y="total_bill", hue="sex", notch=True, whis=1.5)plt.title("每天消费金额箱线图")
plt.show()

七、联合分布图

Seaborn 的 sns.jointplot() 函数可以绘制两个变量之间的联合分布图,同时展示单变量的分布情况。

参数说明

  • xy:绘制联合分布图的两个变量
  • kind:指定联合分布图的类型,可选值包括 “scatter”、“kde”、“hex” 等
  • hue:指定颜色变量
  • joint_kws:控制联合图的其他属性

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("iris")# 绘制联合分布图
sns.jointplot(data=data, x="sepal_length", y="sepal_width", kind="scatter", hue="species")plt.title("花萼长度与宽度联合分布图")
plt.show()

image-20240203115406591

八、小提琴图

小提琴图是箱线图的一种变体,Seaborn 中的 sns.violinplot() 函数可以绘制小提琴图,展示数据的分布情况。

参数说明

  • xy:数据集中的变量
  • hue:指定颜色变量
  • split:当有 hue 参数时,是否拆分小提琴图
  • inner:指定小提琴图内部显示的内容

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("tips")# 绘制小提琴图
sns.violinplot(data=data, x="day", y="total_bill", hue="sex", split=True, inner="quartile")plt.title("每天消费金额小提琴图")
plt.show()

image-20240203115436810

九、成对关系图

Seaborn 的 sns.pairplot() 函数用于绘制数据集中各个数值变量两两之间的散点图,对于多变量数据集的初步探索非常有帮助。

参数说明

  • data:数据集
  • hue:指定颜色变量
  • kind:指定对角线上显示的图表类型

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("iris")# 绘制成对关系图
sns.pairplot(data=data, hue="species", kind="scatter")plt.suptitle("花萼与花瓣特征成对关系图")
plt.show()

十、自定义调色板

Seaborn 允许用户使用自定义调色板,通过 sns.set_palette() 函数可以指定颜色的顺序。

参数说明

  • palette:调色板名称或颜色列表

实战案例

import seaborn as sns
import matplotlib.pyplot as plt# 创建样本数据
data = sns.load_dataset("tips")# 自定义调色板
custom_palette = ["#FF5733", "#33FF57", "#3357FF", "#FF33C2"]
sns.set_palette(custom_palette)# 绘制小提琴图
sns.violinplot(data=data, x="day", y="total_bill", hue="sex", split=True, inner="quartile")plt.title("每天消费金额小提琴图 - 自定义调色板")
plt.show()

结语

本文详细介绍了 Seaborn 库中一系列常用的绘图功能,包括散点图、直方图、线性关系图、热力图、分布图、箱线图、联合分布图、小提琴图、成对关系图以及自定义调色板。通过深入了解每个函数的参数及实战案例,读者应该能够更自如地使用 Seaborn 进行数据可视化。

Seaborn 提供了直观易用的高级接口,使得绘图变得更加简便,同时保持了高度的定制性。无论是初学者还是有一定经验的数据科学家,都可以在 Seaborn 中找到适合自己需求的工具。

在实际工作中,选择合适的图表类型、调整颜色和样式,都是提高数据可视化效果的关键。通过多次实践,读者将更加熟练地运用 Seaborn 进行数据分析,为数据的探索和展示提供更有力的支持。

希望本文能够帮助读者更深入地了解 Seaborn 库,激发大家在数据可视化领域的创造力,为数据科学的发展贡献一份力量。愿每个数据背后的故事都能在绚丽的图表中得以展现。

相关文章:

Python—数据可视化Seaborn大全:参数详解与实战案例全解析【第52篇—python:Seaborn大全】

文章目录 Seaborn库常用绘图详解与实战引言安装与导入一、散点图参数说明实战案例 二、直方图参数说明实战案例 三、线性关系图参数说明实战案例 四、热力图参数说明实战案例 五、分布图参数说明实战案例 六、箱线图参数说明实战案例 七、联合分布图参数说明实战案例 八、小提琴…...

手机上0.2秒出图、当前速度之最,谷歌打造超快扩散模型MobileDiffusion

目录 前言导读 论文介绍 模型优化 宏观设计 微观设计 实验与应用 移动端基准测试 下游任务测试 生图效果展示 总结 前言导读 在手机等移动端侧运行 Stable Diffusion 等文生图生成式 AI 大模型已经成为业界追逐的热点之一,其中生成速度是主要的制约因素。…...

浅谈WPF之UniformGrid和ItemsControl

在日常开发中,有些布局非常具有规律性,比如相同的列宽,行高,均匀的排列等,为了简化开发,WPF提供了UniformGrid布局和ItemsControl容器,本文以一个简单的小例子,简述,如何…...

SEO系列--robots.txt的用法

原文网址:SEO系列--robots.txt的用法-CSDN博客 简介 本文介绍网站的robots.txt文件的用法。 Robots是站点与搜索引擎爬虫沟通的重要渠道,站点通过robots文件声明本网站中不想被搜索引擎抓取的部分或者只让搜索引擎抓取指定内容。 搜索引擎使用spider…...

环形链表(快慢指针)

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环…...

vue day06

1、路由模块封装 2、声明式导航 实现导航高亮效果 直接通过这两个类名对相应标签设置样式 点击a链接进入my页面时,a链接 我的音乐高亮,同时my下的a、b页面中的 我的音乐也有router-link-active类,但没有精确匹配的类(只有my页…...

ffmpeg 输入文件,输入出udp-ts 指定pid、Programid ts流参数

要使用FFmpeg将输入文件转换为UDP传输流(TS)并指定特定的PID、Program ID以及其他TS流参数,您可以使用以下命令: ffmpeg -i input_file -c:v libx264 -preset ultrafast -tune zerolatency -f mpegts -map 0:v:0 -map 0:a:0 -pid …...

操作系统透视:从历史沿革到现代应用,剖析Linux与网站服务架构

目录 操作系统 windows macos Linux 服务器搭建网站 关于解释器的流程 curl -I命令 名词解释 dos bash/terminal,(终端) nginx/apache(Linux平台下的) iis(Windows平台下的) GUI(图形化管理接口&#xff…...

金蝶82新建员工信息维护菜单,并新建导入模板,导入时出现不能在此处导入模板

原因:82版本bug,校验了所有T_BS_SHRFileTemplate中 FDATANUMBER001的uipk 只要任意一个模板里面不包含当前列表的uipk就会抛出异常 解决办法: 将当前列表uipk加到其他FDATANUMBER001的模板中 例如: update T_BS_SHRFileTemplate set FU…...

套你npm镜像

套你npm镜像 大天才,给我错误镜像信息,然后npm install卡住!! gpt生成的淘宝镜像地址: https://registry.npm.taobao.org/安装情况:卡死如下… 正确镜像地址: # 更换npm config set registry…...

[网络安全]IIS---FTP服务器 、serverU详解

一 . FTP服务器(File Transfor Protocol) : 协议:文件传输协议 端口号:TCP: 20(数据) / 21(控制) 二 . FTP工作方式: 1.主动模式 : (FTP服务器21端口与FTP客户端产生的随机端口先建立连接 建立连接后,再使用FTP服务器21端口与FTP客户端创建的一个新的随机端口进行发送…...

校园自助洗浴设施运维服务认证的介绍

校园自助洗浴设施运维服务认证是一种针对校园自助洗浴设施运维服务质量的评估和认证体系。通过该认证,学校可以确保自助洗浴设施的安全、可靠、卫生和持续运行,为师生提供更好的洗浴体验。 自助洗浴设施运维服务通常包括的具体工作: 1.设备维…...

NetCore iText7 根据PDF模板 导出PDF文件

iText 7 是一个用于处理 PDF 文件的流行的开源库,它提供了丰富的功能,包括创建、编辑和处理 PDF 文档。它支持 .NET 平台,因此可以在 .NET Core 中使用该库来处理 PDF 文件。 使用 iText 7,您可以进行以下操作: 1. 创…...

Notion 开源替代品:兼容 Miro 绘图 | 开源日报 No.162

toeverything/AFFiNE Stars: 25.6k License: NOASSERTION AFFiNE 是下一代知识库,将规划、排序和创建集于一身。它是一个注重隐私、开源、可定制且即插即用的替代方案,可以与 Notion 和 Miro 相媲美。主要功能和优势包括: 超融合&#xff1…...

LangChain 81 LangGraph 从入门到精通三

LangChain系列文章 LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 62 深入理解Lang…...

Python学习从0到1 day13 Python数据容器.4.set集合、dict字典,映射

他往黑夜里去了,我陪他 ——24.2.4 一、set集合 1.为什么使用集合? 通过特性来分析: 列表可修改、支持重复元素且有序 元组、字符串不可修改、支持重复元素且有序 局限在于:它们都支持重复元素 当场景需要对内容进行去重处理&am…...

Java生成微信小程序二维码的方式有哪些?

大家好我是咕噜美乐蒂,很高兴又见面啦!今天我们来谈一下如何使用Java生成微信小程序二维码,有哪些方式方法呢? 生成微信小程序二维码是开发微信小程序时的常见需求之一。在Java中,我们可以使用多种方式来生成微信小程…...

一箭11星,吉利未来出行星座第二个轨道面部署完成!

临近春节,国内卫星产业又传来好消息! 2024年2月3日7时37分,11颗卫星通过长征二号丙运载火箭,在西昌卫星发射中心发射升空。火箭顺利将所有卫星送入预定轨道,所有卫星状态正常,发射任务获得圆满成功。 本次发…...

【持续学习系列(九)】《Continual Learning with Pre-Trained Models: A Survey》

一、论文信息 1 标题 Continual Learning with Pre-Trained Models: A Survey 2 作者 Da-Wei Zhou, Hai-Long Sun, Jingyi Ning, Han-Jia Ye, De-Chuan Zhan 3 研究机构 National Key Laboratory for Novel Software Technology, Nanjing University; School of Artifici…...

redis的AOF

redis 提供了两种持久化方式—— RDB(Redis DataBase) 和 AOF(Append Only File) ,可以将 Redis 在内存中的数据库状态保存到磁盘里。 RDB快照并不是很可靠。如果服务器突然宕机了,最新的数据就会丢失。除了 RDB 持久化功能之外,Redis 还提供…...

信号电压高,传输稳定性变强,但是传输速率下降?

信号电压高,传输稳定性变强,但是传输速率下降? 一、信号电压升高,传输稳定性变强 1.信号幅度更大,抗噪声能力增强 2.噪声,比如干扰电磁波,串扰等相对于信号幅度比例变小,误码率降低 …...

linux安全加固(非常详细)

安全加固方案原则 1.版本升级 对于系统和应用在使用过程中暴露的安全缺陷,系统或应用厂商会及时发布解决问题的升级补丁包。升级系统或应用版本,可有效解决旧版本存在的安全风险。2.关闭端口服务 在不影响业务系统正常运行情况下,停止或禁用承…...

HTTP、WebSocket、SSE 对比

特性HTTPWebSocketSSE (Server-Sent Events)通信模式请求-响应(单向)全双工双向通信服务器到客户端的单向通信连接方式短连接(默认)长连接长连接协议基础TCP(HTTP/1.1, HTTP/2)基于HTTP升级基于HTTP数据格式…...

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁...

Rust 学习笔记:关于 Cargo 的练习题

Rust 学习笔记:关于 Cargo 的练习题 Rust 学习笔记:关于 Cargo 的练习题问题一问题二问题三问题四问题五问题六问题七 Rust 学习笔记:关于 Cargo 的练习题 参考视频: https://www.bilibili.com/video/BV1xjAaeAEUzhttps://www.b…...

Cesium使用glb模型、图片标记来实现实时轨迹

目录 1、使用glb模型进行实时轨迹 2、使用图片进行实时轨迹 基于上一篇加载基础地图的代码上继续开发 vue中加载Cesium地图(天地图、高德地图)-CSDN博客文章浏览阅读164次。vue中加载Cesium三维地球https://blog.csdn.net/ssy001128/article/details…...

第2天:认识LSTM

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: pytorch (二)具体步骤…...

AudioRelay 0.27.5 手机充当电脑音响

—————【下 载 地 址】——————— 【​本章下载一】:https://pan.xunlei.com/s/VOS4MvfPxrnfS2Zu_YS4egykA1?pwdi2we# 【​本章下载二】:https://pan.xunlei.com/s/VOS4MvfPxrnfS2Zu_YS4egykA1?pwdi2we# 【百款黑科技】:https://uc…...

Odoo 19 路线图(新功能)

Odoo 19 路线图(新功能) Odoo 19 路线图是Odoo官方针对下一版本的发布计划,将在自动化、合规性、用户体验、碳排放报告及本地化等领域推出超过16项新功能。本路线图详细阐述了Odoo 19如何在过往版本基础上进一步提升,助力企业优化销售、财务、运营及客户…...

Flask 核心概念速览:路由、请求、响应与蓝图

一、路由参数与请求方法 Flask 路由允许定义多种参数类型,并通过 methods 属性限制请求方法。 1. 路由参数类型: 除了默认的 string,Flask 还支持: int: 匹配整数,自动转换为 Python int 类型。非数字输入会返回 404。 float: 匹配浮点数,自动转换为 Python float 类型…...