Seaborn——可视化的具体API应用

news2024/11/15 8:45:09

一、Seaborn概述

        Seaborn 是基于 matplotlib的图形可视化 python包。提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

        Seaborn在 matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。

        Seaborn和 Pandas的API配合的很好,使用DataFrame/Series的数据就可以绘图

二、绘制单变量图

1、直方图    histplot
# 导包
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 配置Matplotlib
# 设置正常显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 设置如何显示负号
plt.rcParams['axes.unicode_minus'] = False

rcParams:是一个字典,用于设置Matplotlib的配置参数

' font.sans-serif ':是rcParams中的一个键,它用于指定无衬线字体(sans-serif 字体)的默认字体。

[ ' SimHei ' ]:是一个列表,其中包含一个字体名称。这里,我们设置默认的无衬线字体为“SimHei”。“SimHei”是一种常用的中文字体,用于在显示中文时确保文字的正常显示。 #

' axes.unicode_minus ':用于指定是否使用Unicode字符来表示负号。

# 加载小费数据
tips = pd.read_csv('data/tips.csv')

# 使用subplots函数创建画布,并在其中添加子图
fig, ax = plt.subplot(figsize=(12,6))

# kde 绘制核密度估计
sns.histplot(tips['total_bill'],kde=True,ax=ax)
ax.set_title('总账单直方图')
plt.show()

运行结果:

 2、密度图(核密度估计)   kdeplot

        是展示单变量分布的另一种方法,本质上是通过绘制每个数据点为中心的正态分布,然后消除重叠的图,使曲线下的面积为1来创建的。

sns.kdeplot(tips['total_bill'],ax=ax)
ax.set_title('总账单KDE图')
plt.show()

运行结果:

 3、计数图(条形图)   countplot

        计数图(条形图)是对离散变量(分类变量)计数

sns.countplot(data=tips,x='day')
ax.set_title('Count of days')
ax.set_xlabel('Day of the Week')
ax.set_ylabel('Frequency')
plt.show()

运行结果:

 三、双变量数据可视化

1、散点图    scatterplot
sns.scatterplot(x='total_bill',y='tip',data=tips)
ax.set_title('Total Bill 和 Tip 散点图')
ax.set_xlabel('Total Bill')
ax.set_ylabel('Tip')
plt.show()

运行结果:

 regplot 不仅可以绘制散点图,还会拟合回归线,把 fit_reg 设置为False,将只显示散点图

sns.regplot(x='total_bill',y='tip',data=tips)
ax.set_title('regplot of Total Bill and Tip')
ax.set_xlabel('Total Bill')
ax.set_ylabel('Tip')
plt.show()

运行结果:

 lmplot 函数和regplot函数类似,也可以用于创建散点图。lmplot 函数内部会调用regplot,两者的主要区别是 regplot 创建坐标轴,而 lmplot 创建图

sns.lmplot(x='total_bill',y='tip',data=tips)

运行结果:

 还可以使用 jointplot 在每个轴上创建包含单个变量的散点图

joint = sns.jointplot(x='total_bill',y='tip',data=tips)
joint.set_axis_labels(xlabel = 'Total Bill', ylabel = 'Tip')
joint.fig.suptitle('Joint Plot of Total Bill and Tip', fontsize = 10, y=1.03)
plt.show()

运行结果:

 2、蜂巢图

使用 Seaborn 的 jointplot 绘制蜂巢图

joint = sns.jointplot(x='total_bill',y='tip',data=tips,kind='hex')
joint.set_axis_labels(xlabel = 'Total Bill', ylabel = 'Tip')
joint.fig.suptitle('Hexbin Joint Plot of Total Bill and Tip', fontsize = 10, y=1.03)
plt.show()

运行结果:

3、 2D密度图

2D密度图和 kdeplot 类似,但2D核密度图可展示两个变量

sns.kdeplot(data=tips,x='total_bill',y='tip',fill=True)    # 是否填充轮廓
ax.set_title('Kernel Density Plot of Total Bill and Tip')
ax.set_xlabel('Total Bill')
ax.set_ylabel('Tip')
plt.show()

运行结果:

sns.kdeplot(data=tips,x='total_bill',y='tip')    # 是否填充轮廓

 运行结果:

 4、条形图    barplot

barplot 默认会计算平均值

sns.barplot(x='time',y='total_bill',data=tips,errorbar=None)

运行结果:

 5、箱线图    boxplot

用于显示多种统计信息:最小值,1/4分位,中位数,3/4分位,最大值,以及离群值(如果有)

sns.boxplot(x='time',y='total_bill',data=tips)

        箱子的中间有一条线,代表了数据的中位数

        箱子的上下底,分别是数据的上四分位数(Q3)和下四分位数(Q1)

        箱体包含了50%的数据。因此,箱子的高度在一定程度上反映了数据的波动程度

        上下边缘则代表了该组数据的最大值最小值

        有时候箱子外部会有一些点,可以理解为数据中的“异常值

6、小提琴图    violinplot

        箱线图是经典的可视化方法,但可能会掩盖数据的分布,小提琴图能显示与箱线图相同的值 小提琴图把"箱线"绘成核密度估计,有助于保留数据的更多可视化信息

sns.violinplot(x='time',y='total_bill',data=tips)

 7、成对关系

        当大部分数据是数值时,可以使用 pairplot 函数把所有成对关系绘制出来

        pairplot 函数会为单变量绘制直方图,双变量绘制散点图

 sns.pairplot(tips)

 pairplot 的缺点是存在冗余信息,图的上半部分和下半部分相同

 可以使用 pairgrid 手动指定图的上半部分和下半部分

pair_grid = sns.PairGrid(tips)
pair_grid.map_upper(sns.regplot)
pair_grid.map_lower(sns.kdeplot)
pair_grid.map_diag(sns.histplot)
plt.show()

 

 四、多变量数据

1、通过颜色区分

        使用 violinplot 函数时,可以通过 hue 参数按性别(sex)给图着色,可以为“小提琴”的左右两半着不同颜色,用于区分性别

sns.violinplot(x='time', y='total_bill', hue='sex', data=tips, split=True)

 

scatter = sns.lmplot(x='total_bill', y='tip', data = tips, hue='sex', fit_reg = False)

sns.pairplot(tips, hue = 'sex')

 2、通过大小和形状区分

        可以通过点的大小表示更多信息,但通过大小区分应谨慎使用,当大小差别不大时很难区分 在Seaborn中的 lmplot,可以通过 scatter_kws 参数来控制散点图点的大小

scatter = sns.lmplot(x='total_bill', y='tip', data = tips, fit_reg=False, hue='sex', markers=['o','x'])

五、Seaborn主题和样式

        可以使用 sns.set_style 函数更改样式,该函数只要运行一次,后续绘图的样式都会发生变化 Seaborn 有5种样式:darkgrid 黑色网格(默认)、whitegrid 白色网格、dark 黑色背景、white 白色背景

fig,ax = plt.subplots()
ax = sns.violinplot(x='time', y='total_bill', hue='sex', data = tips, split = True)

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

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

相关文章

高可用架构去中心化重要?

1 背景 在互联网高可用架构设计中,应该避免将所有的控制权都集中到一个中心服务,即便这个中心服务是多副本模式。 对某个中心服务(组件)的过渡强依赖,那等同于把命脉掌握在依赖方手里,依赖方的任何问题都可…

kafka学习笔记-- 文件清理策略与高效读写数据

本文内容来自尚硅谷B站公开教学视频,仅做个人总结、学习、复习使用,任何对此文章的引用,应当说明源出处为尚硅谷,不得用于商业用途。 如有侵权、联系速删 视频教程链接:【尚硅谷】Kafka3.x教程(从入门到调优…

机器学习学习笔记(吴恩达)(第三课第一周)(无监督算法,K-means、异常检测)

欢迎 聚类算法: 无监督学习:聚类、异常检测 推荐算法: 强化学习: 聚类(Clustering) 聚类算法:查看大量数据点并自动找到彼此相关或相似的数据点。是一种无监督学习算法 聚类与二院监督…

如何使用服务器?

文章目录 如何使用服务器?一、工具二、第一种方法三、第二种方法四、实例 个人经验 如何使用服务器? 本文详细介绍了如何利用服务器跑模型,具体流程如下: 一、工具 ToDeskPyCharm Professional移动硬盘JetBrains GatewayGit 二…

微信小程序------WXML模板语法之条件渲染和列表渲染

目录 前言 一、条件渲染 1.wx:if 2. 结合 使用 wx:if 3. hidden 4. wx:if 与 hidden 的对比 二、列表渲染 1. wx:for 2. 手动指定索引和当前项的变量名* 3. wx:key 的使用 前言 上一期我们讲解wxml模版语法中的数据绑定和事件绑定(上一期链接:…

溯源阿里巴巴的中台架构

明朝可以说是中国封建王朝中最后一个由汉人统治的王朝,就算是最后清王朝也是不断的学习汉人的治国方略,但是学习最多的当然是明朝。 其实阿里巴巴的中台战略其实和明朝的历史还是蛮像的,这里小编就和大家好好的探讨一下。 今天先来从明朝的…

Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)

文章目录 一、Vuex1)理解vuex2)优点3)何时使用?4)使用步骤① 安装vuex② 注册vuex③ 引用vuex④ 创建仓库Store五个模块介绍 5)基本使用 二、Vue-router三、LocalStorage与SessionStorage、cookie的使用 一…

漏洞复现-金和OA jc6/servlet/Upload接口任意文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

python统计分析——生成正态分布随机数

参考资料:用python动手学统计学,帮助文档 方法1:scipy.stats.norm.rvs() from scipy import stats stats.norm.rvs(loc4,scale0.8,size10) 参数介绍如下: loc:表示正态分布的均值,默认为0 scale&#…

WinSCP传文件到Ubuntu提示Permission denied

使用WinSCP传文件到一台Ubuntu服务器时,提示Permission denied。 客户端:Windows 10 服务器:hyper-V虚拟机 Ubuntu 20.04 WinSCP版本:WinSCP 6.1 文章目录 WinSCP工具介绍WinSCP开源免费WinSCP优点 Permission denied 解决方法scp…

机器学习——主成成分分析PCA

如上图所示,一共有4个属性,身高( m为单位),身高(cm),时速(每小时公里),时速(每小时里),身高的两个属性是相关的&#xff0…

bee工具的使用及创建第一个项目

前提文章:beego的安装及配置参数说明-CSDN博客 提示:beego框架下项目需要再GOPATH/src下进行开发,我的GOPATH是C:\Users\leell\go web项目创建 通过 bee new 创建web项目 C:\Users\leell\go\src>bee new beego-web 2024/01/15 21:40:0…

文心一言 vs. ChatGPT:哪个更胜一筹?

文心一言 vs. ChatGPT:从简洁美到深度思考的文本生成之旅 近年来,文本生成工具的崛起使得人们在表达和沟通方面拥有了更多的选择。在这个领域中,文心一言和ChatGPT作为两个备受瞩目的工具,各自以独特的优势展现在用户面前。本文将…

深度系统QT 环境搭建

1.QT安装 不折腾最新版直接去商店搜索QT安装。 2.修改su密码,安装需要权限 打开一个终端,然后输入下面的命令:按照提示输入密码按回车就行。 sudo passwd 回车后会出现让你输入现在这个账户的密码: 3.编译环境安装。 安…

[链路层] 点对点协议 PPP

目录 1、PPP协议的特点 2、PPP协议的组成和帧格式 3、PPP协议的工作状态 目前使用得最广泛的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)。 1、PPP协议的特点 我们知道,互联网用户通常都要连接到某个 ISP 才能接入到互联网。PPP 协议就是用户计算机…

系统架构11 - 数据库基础(上)

数据库基础 数据库基本概念概述三级模式、两级映像概念模式外模式内模式二级映像逻辑独立性物理独立性 数据库设计需求分析概念结构设计逻辑结构设计物理设计数据库实施阶段据库运行和维护阶段 数据模型E-R模型关系模型模型转换E-R图的联系 关系代数 数据库基本概念 概述 数据…

Linux Mii management/mdio子系统分析之五 PHY状态机分析及其与net_device的关联

(转载)原文链接:https://blog.csdn.net/u014044624/article/details/123303714 前面几章基本上完成了mdio模块驱动模型的分析,本篇文章主要讲述phy device的状态机以及phy device与net_device的关联。Phy device主要是对phy的抽象…

CCPC 2023 北京市赛 G.【模板】线段树(线段树区间合并20次多项式)

题目 思路来源 lyw 题解 洛谷高仿题目P4247 (aix)(aix)(aix)注意到当x有超过20项时,20个2相乘,对2的20次方取模就为0 所以,维护0次项到19次项乘积的和,向上合并时,是两个多项式卷积,这里暴力相乘即可 …

AI教我学编程之C#类的基本概念(2)

前言 AI教我学编程之C#类的基本概念(2) 已经更新,欢迎道友们前往阅读,本节我们继续学习C#类的基本概念 目录 上节回顾 质疑 对话AI 特殊情况 发问 解释 数据/函数成员 类和程序–实现一个简单的程序 实现尝试 声明类 类的成员…

如何判断售卖的医疗器械产品是二类还是三类

售卖医疗器械需关注产品本身是否为一、二、三类医疗器械。第一类医疗器械为一般项目的经营范围无需取得备案或许可证即可销售。第二类医疗器械产品需办理第二类医疗器械的备案方可销售。第三类医疗器械需取得医疗器械经营许可证且许可证上的经营范围需与销售的产品对应方可销售…