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 库,激发大家在数据可视化领域的创造力,为数据科学的发展贡献一份力量。愿每个数据背后的故事都能在绚丽的图表中得以展现。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

钓鱼攻击:深度解析与防范策略

一、引言 在当今的网络世界中,钓鱼攻击已经成为一种日益猖獗的威胁。这种攻击方式利用电子邮件、社交媒体或其他在线平台,伪装成可信赖的来源,诱导受害者点击恶意链接或下载恶意附件,进而窃取个人信息或实施其他恶意行为。本文将…

[SWPUCTF 2021 新生赛]easyupload2.0

一开始我通过cobaltstrike写一个文件上传的木马它不允许上传php文件 我这边写了一句话木马通过burp拦截修改后缀为phtml然后通过蚁剑找flag

centos7安装oracle

1 安装虚拟机 设置4G内存,硬盘40G 2 配置网络环境 2.1配置主机名 # vi /etc/hostname 修改为 oracle2.2 配置IP地址 # vi /etc/sysconfig/network-scripts/ifcfg-ens33 修改 BOOTPROTO"static" ONBOOT"yes" IPADDR192.168.109.110 NETMAS…

政安晨:示例演绎Python的函数与获取帮助的方法

调用函数和定义我们自己的函数,并使用Python内置的文档,是成为一位Pythoner的开始。 通过我的上篇文章,相信您已经看过并使用了print和abs等函数。但是Python还有许多其他函数,并且定义自己的函数是Python编程的重要部分。 在本…

027 方法的定义及调用

方法的定义 方法调用 设计方法的原则 使用场景 想象一下有个场景需要我们不断频繁地去使用某部分特定的代码,我们自然可以通过复制粘贴去完成,但是这样会导致代码又臭又长,大部分是重复的代码,这不利于我们后续的维护,…

一键转换MOV至MP3:轻松删除原视频,释放存储空间!

你是否曾经有一个MOV格式的视频文件,想要提取其中的音频却苦于没有合适的工具?现在,有了我们的全新视频剪辑工具,这个烦恼全部消失!我们为你提供一键式解决方案,将MOV视频文件快速转换为MP3音频格式。 首先…

tidb节点重启后,服务无法重连

大家好,我是烤鸭: 前几天遇到tidb节点重启后服务无法重连,确切地说是两个服务,一个可以正常重连,一个不行。 问题复现 由于线上执行慢SQL,导致TiDB 单个节点宕机重启。 其中A服务的3个节点和B服务的1个节…

电商实战练习部署

基于阿里云ECS服务器实战部署 1 单架构部署方案 1.1 部署流程 传统方案 基于docker 2 持续集成&持续部署方案 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件 开发的质量已经慢慢成为开发过程中不可回避的问题。互联网软件的开发…

153基于matlab的滚动轴承故障诊断

基于matlab的滚动轴承故障诊断,基于小波包分解,得到数据峭度值,以正常与故障数据峭度差值进行最大尺度重构,对重构信号进行包络谱分析。程序已调通,可直接运行。 153matlab 信号重构 包络谱分析 故障诊断 (xiaohongshu…

通过html2canvas和jsPDF将网页内容导出成pdf

jsPDF参考:https://github.com/parallax/jsPDF html2canvas参考:https://github.com/niklasvh/html2canvas 或者 https://html2canvas.hertzen.com 思路 使用html2canvas将选中DOM生成截图对象将截图对象借助jsPDF导出为PDF文件 代码 这是一个示例&a…

gorm day1

gorm day1 gorm简介gorm声明模型 代码样例基本来自官方文档 Gorm简介 什么是ORM? 对象关系映射(Objection Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库(如mysql数据库)存在的互不匹配现象的计数。简单来说,ORM是通…

西瓜书学习笔记——主成分分析(公式推导+举例应用)

文章目录 算法介绍实验分析 算法介绍 主成分分析(Principal Component Analysis,PCA)是一种常用的降维技术,用于在高维数据中发现最重要的特征或主成分。PCA的目标是通过线性变换将原始数据转换成一组新的特征,这些新…

C++ OpenGL绘制三维立体skybox场景obj模型AABB碰撞检测旋转动画界面

程序示例精选 C OpenGL绘制三维立体skybox场景obj模型AABB碰撞检测旋转动画界面 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《C OpenGL绘制三维立体skybox场景obj模型AABB碰撞检测旋转动…

HBase 数据导入导出

HBase 数据导入导出 1. 使用 Docker 部署 HBase2. HBase 命令查找3. 命令行操作 HBase3.1 HBase shell 命令3.2 查看命名空间3.3 查看命名空间下的表3.4 新建命名空间3.5 查看具体表结构3.6 创建表 4. HBase 数据导出、导入4.1 导出 HBase 中的某个表数据4.2 导入 HBase 中的某…

从源代码看Chrome 版本号

一直以来都是用Chrome 浏览器,但是看到Chrome 点分4 组数据的表达方式,总是感觉怪怪的,遂深入源代码了解她的版本号具体表示的内容 chrome 浏览器中显示的版本号 源代码中的版本号标识 版本号文件位于 chrome/VERSION , 看到源代…

nginx初学者指南

一、启动、停止和重新加载配置 前提:先要启动nginx 在Windows上启动nginx的步骤如下: 1. 下载并安装nginx。可以从nginx官网下载适合自己操作系统的版本,一般是zip压缩包,解压到指定目录中。 2. 进入nginx的安装目录&#xff…

Shell脚本⑧免交互

目录 一.Here Document 1.定义 2.变量 (1)变量替换成实际值 (2)整行内容作为变量并输出结果 (3)多行注释 (4)自动划分磁盘免交互 二.Expect 1.定义 2.安装 3.免交互操作 …

微软的Copilot for Sales(销售助手)和Copilot for Service(服务助手)现已全面开放

深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/ 。 微…

基于控制台的购书系统(Java 语言实现)

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》|《数据结构与算法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢…

Llama2大模型开源,大模型的Android时代来了?

就昨天凌晨,微软和Meta宣布Llama2大模型开源且进一步放开商用,一下朋友圈刷屏。要知道,开源界最强大的模型就是过去Meta开源的Llama,而现在Llama2更强大,又开放商用,更有微软大模型霸主企业撑腰(微软既投资大模型界的IOS——ChatGPT,又联合发布大模型的Android——Llam…