【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码

news2024/11/11 16:17:00

目录

1. 数据分布的可视化

1.1 直方图(Histograms)

1.2 核密度估计图(Kernel Density Estimation Plot)

1.3 箱线图(Box Plot)

  1.4 小提琴图(Violin Plot)

​编辑1.5 散点图(Scatter Plot)

2. 数据关系的可视化

2.1  散点图矩阵(Pair Plot)

2.2  线性回归模型可视化(Linear Regression Plot)

​编辑

2.3 关联矩阵(Correlation Matrix Plot)

2.4 热力图(Heatmap)


         Seaborn库是一个基于Matplotlib的Python数据可视化库,它提供了一些用于创建漂亮和有吸引力的统计图形的高级接口。Seaborn库具有更简洁的语法和更丰富的默认设置,能够使用户更轻松地生成各种复杂图表。

1. 数据分布的可视化

1.1 直方图(Histograms)

        直方图用于可视化单变量数据的分布。它将数据划分为多个连续的区间(或"箱子")并绘制每个区间中数据点的频率或计数。

import seaborn as sns
import matplotlib.pyplot as plt

# 生成示例数据
data = sns.load_dataset("iris")

# 绘制直方图
sns.histplot(data=data['sepal_length'], kde=True)  # kde参数绘制核密度估计图
plt.xlabel("Sepal Length")
plt.ylabel("Frequency")
plt.title("Histogram of Sepal Length")
plt.show()

输出: 

1.2 核密度估计图(Kernel Density Estimation Plot)

        核密度估计图用于估计连续数据的概率密度函数。Seaborn 的 kdeplot 函数可以用于创建核密度估计图。以下是一个示例:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")
sns.set(style="darkgrid")
plt.figure(figsize=(8, 4))
sns.kdeplot(data=data["total_bill"], shade=True, color="salmon")
plt.xlabel("Total Bill")
plt.ylabel("Density")
plt.title("Kernel Density Estimation of Total Bill")

# 添加注释
plt.text(20, 0.04, "Peak here", fontsize=12, color="blue")

plt.show()


1.3 箱线图(Box Plot)

        箱线图用于可视化数据的分散程度和异常值。Seaborn 的 boxplot 函数可用于创建箱线图。以下是一个示例:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")
sns.set(style="whitegrid")
plt.figure(figsize=(8, 4))
sns.boxplot(data=data, x="day", y="total_bill", hue="time", palette="Set3")
plt.xlabel("Day of the Week")
plt.ylabel("Total Bill")
plt.title("Box Plot of Total Bill by Day and Time")

# 添加注释
plt.text(2, 45, "Median", fontsize=12, color="green")

plt.show()

  1.4 小提琴图(Violin Plot)

        小提琴图结合了箱线图和核密度估计,用于可视化数据的分布和分散情况。Seaborn 的 violinplot 函数可用于创建小提琴图。以下是一个示例:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")
sns.set(style="whitegrid")
plt.figure(figsize=(8, 5))
sns.violinplot(data=data, x="day", y="total_bill", hue="sex", split=True, palette="Set2")
plt.xlabel("Day of the Week")
plt.ylabel("Total Bill")
plt.title("Violin Plot of Total Bill by Day and Gender")

# 添加注释
plt.text(1, 45, "Median", fontsize=12, color="blue")

plt.show()


1.5 散点图(Scatter Plot)

        散点图用于显示两个变量之间的关系。Seaborn 的 scatterplot 函数可用于创建散点图。以下是一个示例:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")
sns.set(style="whitegrid")
plt.figure(figsize=(8, 5))
sns.scatterplot(data=data, x="total_bill", y="tip", hue="time", style="sex", markers=["o", "s"], palette="Set1")
plt.xlabel("Total Bill")
plt.ylabel("Tip")
plt.title("Scatter Plot of Total Bill vs. Tip")
plt.legend(title="Time")

# 添加注释
plt.text(10, 4, "Annotation Example", fontsize=12, color="red")

plt.show()

2. 数据关系的可视化

        Seaborn 提供了多种方法来可视化数据关系,包括散点图矩阵、线性回归模型可视化、关联矩阵和热力图。

2.1  散点图矩阵(Pair Plot)

        散点图矩阵(Pair Plot)是一种用于可视化多个变量之间关系的有用工具。它在 Seaborn 中通过 sns.pairplot() 函数实现。散点图矩阵通常用于展示数据集中的多个数值型变量之间的散点图,以便观察它们之间的关系和分布。以下是有关散点图矩阵的详细信息和示例:

import seaborn as sns
import matplotlib.pyplot as plt

# 加载示例数据集
data = sns.load_dataset("iris")

# 创建散点图矩阵
sns.set(style="ticks")
sns.pairplot(data, hue="species", markers=["o", "s", "D"])
plt.show()

上述示例使用了鸢尾花数据集,其中包含鸢尾花的花萼和花瓣的测量数据。散点图矩阵通过 sns.pairplot() 创建,其中的参数说明如下:

  • data: 数据集,包含多个数值型变量。
  • hue: 用于着色的变量,通常是分类变量,以便在图中区分不同类别。
  • markers: 用于不同类别数据点的标记类型,可以根据需要指定。


2.2  线性回归模型可视化(Linear Regression Plot)

        线性回归模型可视化用于显示两个变量之间的线性关系,包括回归线和置信区间。Seaborn 的 lmplot 函数可以用于创建线性回归模型可视化。

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")  # 示例数据集
sns.lmplot(data=data, x="total_bill", y="tip", hue="time")
plt.show()

        上述代码使用了餐厅小费数据集,其中包括了顾客总账单金额和小费的数据。hue 参数用于根据用餐时间对数据进行着色,以区分不同用餐时间的数据点。 

2.3 关联矩阵(Correlation Matrix Plot)

        关联矩阵用于显示多个变量之间的相关性。Seaborn 的 heatmap 函数可以用于绘制相关性矩阵的热力图。 

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("tips")  # Load the "tips" dataset

# Select only the numeric columns for calculating the correlation matrix
numeric_data = data.select_dtypes(include='number')

correlation_matrix = numeric_data.corr()

sns.heatmap(correlation_matrix, annot=True, cmap="coolwarm")
plt.show()

        上述代码计算了小费数据集中各个数值型变量之间的相关性,并使用热力图可视化了相关性矩阵。annot=True 参数用于在热力图上显示相关性系数的数值。 


2.4 热力图(Heatmap)

        热力图(Heatmap)是一种用于可视化矩阵数据的强大工具,通常用于显示数据之间的关联、相关性或模式。在 Seaborn 中,您可以使用 heatmap 函数创建热力图。

使用 heatmap 函数创建热力图:

Seaborn 的 heatmap 函数可以将一个矩阵或数据框的数据以图形方式呈现出来。该函数的基本语法如下:

import seaborn as sns
import matplotlib.pyplot as plt

# 创建数据矩阵或数据框
data = ...

# 使用heatmap函数绘制热力图
sns.heatmap(data, cmap="YlGnBu")
plt.show()

参数说明:

  • data: 数据矩阵或数据框,用于创建热力图。
  • cmap: 颜色映射,用于指定热力图的颜色。
  • 常用的选项包括 "viridis"、"YlGnBu"、"coolwarm" 等。

示例:

以下是一个示例,展示如何使用 Seaborn 创建一个热力图,以可视化相关性矩阵:

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(pivot_data, cmap="YlGnBu")
plt.show()

        上述代码使用了航班乘客数据集,将数据进行透视以创建一个矩阵,然后使用热力图可视化了这个矩阵。cmap 参数用于指定热力图的颜色映射。

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

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

相关文章

蓝桥杯双周赛算法心得——铺地板(质因数)

大家好,我是晴天学长,这是第二周的蓝桥杯的双周赛,题可出的又好又灵活啊!真不错! 1) .铺地板 2) .算法思路 1.导入java.util包中的Scanner类,以从用户那里读取输入。 2.main方法是程序的入口点。 3.创建一…

单片机仿真设计打包项目

小伙伴们在仿真设计时会遇到各种各样的问题,网上的资料可能不全或者很贵。 这篇也不单纯为了打广告,主要是希望实实在在帮到学单片机的同学,大家不要一有问题就各种找dai zuo,做的好不好是一回事儿,关键是它费&#x…

成都无人机测绘公司 无人机测绘服务 无人机航测作业

无人机测绘是传统航空摄影测量方式的重要补充方式,它具有灵活、高效、适用范围广、生产周期短等优势,在小区域和飞行困难地区获取高分辨率图像具有明显的优势。目前,无人机测绘主要应用于土地监管、灾害应急处理、城市规划管理等方面。那么&a…

el-date-picker如何回显

后端传输过来起止时间,需要回显在 el-date-picker中 未修改前的代码: 问题整改:需要将时间转换为Date类型 修改后的代码 setTime(date){if (date!null){this.value.push(new Date(date.startTime))this.value.push(new Date(date.endTime))c…

一个Entity Framework Core的性能优化案例

概要 本文提供一个EF Core的优化案例,主要介绍一些EF Core常用的优化方法,以及在优化过程中,出现性能反复的时候的解决方法,并澄清一些对优化概念的误解,例如AsNoTracking并不包治百病。 本文使用的是Dotnet 6.0和EF…

前端工作流异常时候 yarn检查异常信息

HDSF中执行异常的原因查询,查看yarn的报错

Kafka - 消息队列的两种模式

文章目录 消息队列的两种模式点对点模式(Point-to-Point,P2P)发布/订阅模式(Publish/Subscribe,Pub/Sub) 小结 消息队列的两种模式 消息队列确实可以根据消息传递的模式分为 点对点模式发布/订阅模式 这两…

【Linux】tail命令使用

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。 语法 tail [参数] [文件] tail命令 -Linux手册页 著者 由保罗鲁宾、大卫麦肯齐、伊恩兰斯泰勒和吉姆梅耶林撰写。 命令选项及作用 执行令 tail --help 执行命令结果 参…

数据传输如何做才安全:保障隐私的5大秘诀!

在当今数字时代,数据传输安全和隐私保护变得越来越重要。随着网络攻击和数据泄露事件的增加,保护数据传输安全和隐私已经成为当务之急。以下是保障隐私的五大秘诀: 使用加密技术:加密技术是保护数据传输安全的最常用方法。通过使用…

【设计模式】第1节:UML类图

本系列文章主要参考自B站用户以诺爱编程的《设计模式》系列视频,以及王争的《设计模式之美》系列文章。 本文参考自30分钟学会UML类图。 UML图有很多种,一般只要掌握类图、用例图、时序图就可以完成大部分工作。本文算是学习设计模式的一道前菜&#x…

数字人解决方案——解决ER-NeRF/RAD-NeRF人像分割的问题

一、训练数据人像分割 训练ER-NeRF或者RAD-NeRF时,在数据处理时,其中有一步是要把人像分割出来,而且人像要分成三块,人的头部,人的有脖子,人的身体部分,效果如下: 从上面的分割的结…

【设计模式】第2节:七大设计原则

一、七大设计原则 七大原则提出的目的是降低对象之间的耦合度,提高程序的可复用性、可扩展性和可维护性。 1.单一职责原则 Single Responsibility Principle,SRP原则:一个类只负责一个功能领域中的相应职责。或者可以定义为:就一…

安防视频监控平台EasyNVR平台如何在角色表格中添加信息

TSINGSEE青犀视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入,并能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。在智慧安防等视频监控场景中,EasyNVR可提供视频实时监控直播、云端…

Linux | 进程

目录 前言 一、什么是进程 1、Window下的进程 2、深刻理解进程 3、见一见Linux下的进程 二、进程的创建 1、初始fork 2、fork的返回值 3、深刻理解fork函数 4、遗留问题 三、进程状态 1、操作系统中的进程状态 2、Linux中的进程状态 3、状态演示 &#xff08…

MySQL 概述 数据库表操作 数据增删改

目录 MySQL概述前言安装与配置MySQL登录与卸载 数据模型概述SQL简介SQL通用语法简介SQL分类 数据库设计(数据库操作)-DDL数据库操作查询数据库创建数据库使用数据库删除数据库 图形化工具连接数据库操作数据库 表操作创建表创建表语法创建表约束语法创建表数据类型 查询表修改表…

【Python3】【力扣题】169. 多数元素

【力扣题】题目描述: 众数:一组数据中出现次数最多的数据。 【Python3】代码: 1、解题思路:哈希表。使用哈希映射存储各元素以及出现的次数,哈希映射中的键值对中的键为元素、值为该元素出现次数。 知识点&#xff1…

腾讯云2023年双11优惠活动和9999元代金券领取规则

2023腾讯云双11优惠价格表终于来了,轻量2核2G3M云服务器88元一年、轻量2核4G5M服务器166.6元一年、3年轻量2核2G4M带宽优惠价366.6元、3年轻量2核4G5M配置566.6元,CVM云服务器2核2G配置SA2实例172.3元一年、标准型S5服务器2核2G配置280.8元一年&#xff…

单目3D目标检测 方法综述——直接回归方法、基于深度信息方法、基于点云信息方法

本文综合整理单目3D目标检测的方法模型,包括:基于几何约束的直接回归方法,基于深度信息的方法,基于点云信息的方法。万字长文,慢慢阅读~ 直接回归方法 涉及到模型包括:MonoCon、MonoDLE、MonoFlex、CUPNet…

大模型在百度智能问答、搜索中的应用

本文主要介绍了智能问答技术在百度搜索中的应用。包括机器问答的发展历程、生成式问答、百度搜索智能问答应用。欢迎大家加入百度搜索团队,共同探索智能问答技术的发展方向,文末有简历投递方式。 01 什么是机器问答 机器问答,就是让计算机…

如何利用数字化转型升级,重塑企业核心竞争力?

工程机械行业是一个周期性明显的行业,企业经营受到宏观经济与国家基础设施建设的影响较大,例如企业经济上行时,加大投资扩大生产规模,以满足市场需求的增长,当经济下行时,企业可能面临减产和裁员等问题&…