第五章. 可视化数据分析图表—Seaborn图表(线性回归模型,箱型图,核密度图,提琴图)

news2024/9/29 11:31:16

第五章. 可视化数据分析图

5.7 Seaborn图表

Seaborn是一个基于Matplotlib的高级可视化效果库,偏向于统计图表,主要针对的是数据挖掘和机器学习中的变量特征选取,相比Matplotlib,他的语法相对简单,但是具有一定的局限性,本节主要介绍线性回归模型,箱型图,核密度图,提琴图。

1.线性回归模型 (seaborn.lmplot)

Seaborn可以直接绘制线性回归模型,用于描述线性关系。

1).语法:

seaborn.lmplot(x=None, y=None, data=None, hue=None, col=None, row=None,palette=None, col_wrap=3, size=5, markers="o")

参数说明:
x, y:x,y轴数据
data:数据集
hue:散点图中的分类字段
col:列分类变量,构成子集
row:行分类变量
col_wrap:控制每行子图的数量
size:控制子图的高度
markers:点的形状

2).示例:

Excel中的数据:
在这里插入图片描述
代码:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet9')
print(df)

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 绘制线性回归模型
sns.lmplot(x='总收入(千元)', y='利润(千元)', data=df)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

2.箱型图 (seaborn.boxplot)

1).语法:

seaborn.boxplot(x=None, y=None,data=None, hue=None,order=None,hue_order=None,orient=None, color=None, palette=None, saturation=.75, width=.8,notch=False)

参数说明:
x,y:x,y轴数据
data:数据集
hue:分类字段
width:箱形图的宽度
notch:中间箱体是否显示缺口,默认值False

2).示例:

Excel中的数据:
在这里插入图片描述
代码:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet9')
print(df)

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

#绘制箱型图
sns.boxplot(x='是否为工作日', y='总收入(千元)',hue='是否为工作日', data=df)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述
从上图得知,数据存在 异常值(上图中的红色框框)。箱型图实际上就是利用数据的分位数来识别数据的异常点,这一特点使得箱型图在学术界和工业界的应用非常广泛

3.核密度图 (seaborn.kdeplot)

核密度在概率论中用来估计未知的密度函数,属于非参数检验的方法之一,通过核密度图可以比较直观的看出数据本身的分布数据。

1).语法:

seaborn.kdeplot(x=None, y=None, data=None,hue=None,shade=True )

参数说明:
x,y:x,y轴数据
data:数据集
hue:分类字段
shade:是否带阴影,默认值为True

2).示例1:

代码:

import matplotlib.pyplot as plt
import seaborn as sns

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 调用seaborn自带的数据集
df = sns.load_dataset('iris')

# 绘制多个变量的核密度图
p1 = sns.kdeplot(df['sepal_width'], shade=True, color='r')
p1 = sns.kdeplot(df['sepal_length'], shade=True, color='b')

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

3).示例2:边际核密度图

代码:

import matplotlib.pyplot as plt
import seaborn as sns

# sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 调用seaborn自带的数据集
df = sns.load_dataset('iris')

# 绘制多个变量的核密度图
sns.jointplot(x=df['sepal_length'], y=df['sepal_width'], shade=True, kind='kde', space=0)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

4.提琴图 (seaborn.violinplot)

提琴图结合了箱型图和核密度图的特性,用于展示数据的分布情况,粗黑线表示四分数范围,延长的细线表示95%的置信区间,白点为中位数。提琴图弥补了箱型图的不足,可是展示数据分布是双模还是多模

1).语法:

seaborn.violinplot(x=None, y=None,data=None,hue=None, order=None, hue_order=None)

参数说明:
x,y:x,y轴数据
data:数据集
hue:分类字段

2).示例:

Excel中的数据:
在这里插入图片描述
代码:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet9')
print(df)

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 绘制提琴图
sns.violinplot(x='是否为工作日', y='总收入(千元)',hue='是否为工作日', data=df)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

注意:代码中所涉及到的函数和参数,在图表的常用设置1 和 图表的常用设置2 有所介绍

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

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

相关文章

《Java高并发与集合框架》第三部分在高并发场景中工作的集合

《Java高并发与集合框架》第三部分在高并发场景中工作的集合前言1.高并发场景中的List、Map和Set集合1.1 CopyOnWriteArrayList1.2 CopyOnWriteArrayList不支持的使用场景1.3 CopyOnWriteArrayList主要方法1.4 java.util.Collections.synchronizedList()方法的补充作用1.4.1 Co…

Allegro如何实现交换pin操作详细指导

Allegro如何实现交换pin操作详细指导 在做PCB设计的时候,换pin是用的较多的功能,换pin可以让线序更加的顺,方便布线。但是前提是确保网络的交换是被允许的 下面用下图为例介绍Allegro中是如何实现交换pin的 具体操作如下 选择File选择Export-Libraries

2022年终,盘点IT行业全年10大事件

白云苍狗,一眨眼,2022年就来到了尾声。这一年里,IT行业发生了不少的大事。有喜有忧,令人目不暇接,显现出IT行业风云变幻的一面。 本期,知了姐为大家整理了近一年来,IT行业发生的10件大事。 NO…

Linux下安装mysql

下载地址: https://dev.mysql.com/downloads/mysql/ 1.解压mysql 文件包,解压路径/home/mysql tar -zxvf mysql-8.0.31-linux-glibc2.12-x86_64.tar 2.编写配置 [client] #password your_password port 3306 socket /home/mysql/…

无线网络监控分析工具

多年来,网络设备已经从房间大小的机器急剧转变为小型便携式设备。随着设备尺寸发生巨大变化,将这些设备相互连接所涉及的技术也发生了巨大变化。这些剧烈变化的结果是无线网络的形成。无线网络的优势在于网络中的各种设备之间不需要物理连接。此外&#…

GoLang ~ 远程调试

前提条件 在编译go项目时,使用​​go build -gcflags "all-N -l"​​,关闭内联优化,以支持debug。 关于​​-gcflags "-N -l"​​参数的解释: 编译时,如果编译的结果需要gdb调试则使用参数​​-…

ASEMI整流桥2W10,DB107S和KBP307封装参数对比

编辑-Z ASEMI整流桥2W10,DB107S和KBP307是很常见的型号,今天就把整流桥2W10,DB107S和KBP307的封装参数对比一小,以便大家在选型时有更好的参考。 2W10参数: 型号:2W10 封装:WOB-4 最大重复峰…

Redis实现全局唯一id,实现优惠卷秒杀的下单功能

Redis实现全局唯一id public class RedisIdWorker {private StringRedisTemplate stringRedisTemplate;public RedisIdWorker(StringRedisTemplate stringRedisTemplate) {this.stringRedisTemplate stringRedisTemplate;}//开始时间戳private static final long BEGIN_TIMEST…

Postman之接口关联

一、前言 在我们做接口测试时,绝大多数测试人员都会使用 Postman 来进行测试,因为 Postman 的易用性非常好。进行单接口测的时候十分方便,但是实际项目上很多接口都会有依赖关系,这使得每次接口请求前,都要先手动获取…

JMeter操作笔记

通过这个图,我们可以看到一个简单的计算逻辑: 1. 如果有 10000 个在线用户数,同时并发度是 1%,那显然并发用户数就是 100。 2. 如果每个线程的 20TPS,显然只需要 5 个线程就够了(请注意,这里…

函数编程和Stream

在函数编程里用到了一些Lamada语法,因此要先了解一些lamada的内容,然后再了解函数编程,进一步再去了解stream 一、lamada使用语法 1.1、使用格式 lambda 表达式的语法格式如下: (parameters) -> expression 或 (parameters…

专家通过六点考证唐村《李氏族谱》:辨别家谱真伪,有这些窍门

如何辨别家谱真实性 家谱与史书、地方志都是史学界无比重视的史料文献,诸如唐村《李氏族谱》就为我们解开了明末、传统武术、太极拳等谜团,也让我们站在社会底层的角度看到了明末清初的种种变革和生活影响。但家谱的内容相比较史书与地方志而言&#xf…

DEJA_VU3D - Cesium功能集 之 091-绘制等高线(纯前端)

前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小130个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(尽可能把代码简洁一些)。博文内容…

Allegro如何实现交换functions操作详细指导

Allegro如何实现交换functions操作详细指导 在做PCB设计的时候,换function也是用的较多的功能。但是前提是确保交换是被允许的 同样下面用下图为例介绍Allegro中是如何实现交换function的 具体操作如下 选择File选择Export-Libraries

学习使用html2canvas生成渐变色背景图片

学习使用html2canvas生成渐变色背景图片全部代码html2canvas官网生成图片的下载全部代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>生成渐变色背景图片</title> </head><style>#grad1 {width: 75…

c#入门-数字的字面量

指定类型 整数类型适应性类型 通常情况下&#xff0c;整数的字面量写出来是int类型。 如果数字足够大&#xff0c;那么会逐渐变成long&#xff0c;ulong类型 指定整数类型 或者&#xff0c;在数字后加上L&#xff08;不区分大小写&#xff0c;但一般用大写的L&#xff0c;…

Blender K帧与曲线编辑器

文章目录关键帧.三种K帧方式.自动K帧.物体属性K帧.快捷键K帧.曲线编辑器.打开曲线编辑器.曲线编辑器介绍.控制柄类型.插值模式.关键帧. 1 点击一个模型&#xff0c;即可在时间轴上看到这个模型的关键帧 2 blender的关键帧使用菱形表示 3 未选中的关键帧是灰色&#xff0c;选中…

Eyeshot 2023 预期 Eyeshot 2023 二月发布

Eyeshot 2023 预期 定价和包装 Eyeshot 2023 许可证将仅限于多平台。为了简化激活码的管理并防止平台升级/降级/切换疯狂&#xff0c;所有 Eyeshot 2023 许可证将包括 WinForms、WPF 和中立的跨平台核心。 因此&#xff0c;客户可以免费试用 WinForms、WPF 或中立的跨平台核心&…

FPGA知识汇集-源同步时序系统

02. 源同步时序系统 针对普通时钟系统存在着限制时钟频率的弊端&#xff0c;人们设计了一种新的时序系统&#xff0c;称之为源同步时序系统。它最大的优点就是大大提升了总线的速度&#xff0c;在理论上信号的传送可以不受传输延迟的影响。下面我们来看看这种源同步时钟系统的结…

Python接口测试实战3(下)- unittest测试框架

本节内容 unittest简介用例编写用例组织及运行生成测试报告 unitttest简介 参考&#xff1a;unittest官方文档 翻译版 为什么要使用unittest&#xff1f; 在编写接口自动化用例时&#xff0c;我们一般针对一个接口建立一个.py文件&#xff0c;一条测试用例封装为一个函数&…