Seaborn用法大全

原文连接: https://blog.csdn.net/qq_38614074/article/details/138251530



# Seaborn介绍

Seaborn是一个基于Python的数据可视化库,它建立在matplotlib的基础之上,为统计数据的可视化提供了高级接口。Seaborn通过简洁美观的默认样式和绘图类型,使数据可视化变得更加简单和直观。它特别适用于那些想要创建具有吸引力且信息丰富的统计图形的数据科学家和数据分析师。


  Seaborn的主要特点包括:

  • 集成性:Seaborn与pandas数据结构紧密结合,使得数据分析和可视化可以无缝衔接。
  • 美观性:Seaborn提供了精心设计的默认样式和调色板,使得图形更具吸引力。
  • 统计绘图:Seaborn提供了多种统计图形,如箱线图、小提琴图、热力图等,这些图形可以直观地展示数据的分布和关系。
  • 数据分布可视化:通过核密度估计(KDE)和联合图(jointplot)等工具,Seaborn可以方便地展示数据的分布和相关性。
  • 高度可定制性:虽然Seaborn提供了美观的默认样式,但用户仍然可以轻松地调整图形的各个方面,以满足特定的需求。

seaborn官方给出为了常用图形的案列,具体参看seaborn官方示例文档
在这里插入图片描述

Seaborn是一个基于matplotlib的数据可视化Python库,它提供了一种高级界面,用于绘制有吸引力的统计图形。下面是一些使用Seaborn绘制常见图形的示例:
  因为seaborn并是一个绘图库,它与DataFrame对象有很好的集成。

import pandas as pd
import seaborn as sns 
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
sns.set(style="white",font_scale=1.5)
sns.set(rc={"axes.facecolor":"#FFFAF0","figure.facecolor":"#FFFAF0"})
sns.set_context("poster",font_scale = .7)
import warnings
warnings.filterwarnings('ignore')
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体:解决plot不能显示中文问题
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题pd.set_option("display.max.columns",None)iris = sns.load_dataset('iris')
tips = sns.load_dataset('tips')
titanic = sns.load_dataset('titanic') 



一、 折线图 (Line Plot) lineplot线型图

sns.lineplot(x='sepal_length',y='sepal_width',data=iris)
plt.title("iris中sepal_length和sepal_width关系图")
#进行分组
sns.lineplot(x='sepal_length',y='sepal_width',data=iris,hue='species')
#按性别分组
sns.lineplot(x='total_bill',y='tip',data=tips,hue='sex')# style = 'time'
sns.lineplot(x='total_bill',y='tip',data=tips,hue='sex',size='smoker',style='time')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



二、 直方图 (Histogram)

histplot和displot在显示一个维度时,效果时一致的;

# 使用Seaborn绘制直方图
sns.histplot(tips['tip'], bins=30)#kde 是否显示数据分布曲线 默认值是False
#设置风格样式
sns.set(style='white')
sns.displot(tips['tip'],bins=30,kde=True)

在这里插入图片描述
在这里插入图片描述



三、 饼图 (Pie Chart)

虽然Seaborn没有直接的饼图函数,但你可以使用matplotlib来绘制:

# 计算每个类别的百分比
sizes = iris['species'].value_counts(normalize=True) * 100
labels = sizes.index# 使用matplotlib绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
plt.axis('equal')  # 确保饼图是圆的
plt.show()

在这里插入图片描述



四、 散点图 (Scatter Plot)

sns.scatterplot(data=tips,x='total_bill',y='tip')
#size参数指定点的大小
sns.scatterplot(data=tips,x='total_bill',y='tip',size='size')
#hue 按是否吸烟进行分组
sns.scatterplot(data=tips,x='total_bill',y='tip',size='size',hue='smoker')
#保存图片
from matplotlib import pyplot as plt
sns.scatterplot(data=tips,x='total_bill',y='tip',size='size',hue='smoker',style='time')
plt.savefig('scatterplot.jpg')

在这里插入图片描述
在这里插入图片描述

五、 柱状图/条形图barplot 堆叠柱状图 (Stacked Bar Chart)

# 使用Seaborn绘制柱状图
#绘制条形图  barplot
sns.barplot(x='sex',y='survived',data=titanic)
#按船舱分组
sns.barplot(x='sex',y='survived',data=titanic,hue='class')**sns.barplot(data=df, x='category', y='value')
plt.show()

在这里插入图片描述
在这里插入图片描述

# importing all required librariesimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt# creating dataframedf = pd.DataFrame({'X': [1, 2, 3],'Y': [3, 4, 5],'Z': [2, 1, 2]})# creating subplotsax = plt.subplots()# plotting columnsax = sns.barplot(x=df["X"], y=df["Y"], color='b')ax = sns.barplot(x=df["X"], y=df["Z"], color='r')# renaming the axesax.set(xlabel="x-axis", ylabel="y-axis")# visualizing illustrationplt.show()

在这里插入图片描述




六、 箱形图 (Box Plot)

#绘制盒图 boxplot
sns.boxplot(x='day',y='total_bill',data=tips)
#按时间time分组
sns.boxplot(x='day',y='total_bill',data=tips,hue='time')

在这里插入图片描述
在这里插入图片描述




七、 小提琴图 (Violin Plot)

小提琴图是箱图和密度图的一种结合图形。左右越宽代表当前数据 量越密集。
  
在这里插入图片描述
在这里插入图片描述




八、 分布散点图(stripplot)


#绘制分布散点图  stripplot()
sns.stripplot(x='day',y='total_bill',data=tips)
#jitter 震动 默认是True
sns.stripplot(x='day',y='total_bill',data=tips,jitter=False)

在这里插入图片描述




九、 swarmplot(分簇散点图)

sns.swarmplot(x='day',y='total_bill',data=tips)
#按性别分组
sns.swarmplot(x='day',y='total_bill',data=tips,hue='sex')
#按时间分组
sns.swarmplot(x='day',y='total_bill',data=tips,hue='time')

在这里插入图片描述




十、 热力图 (Heatmap)

热力图(heatmap)是以矩阵的形式表示,数据值在图形中以颜色 的深浅来表示数量的多少,并可以快速到到大值的与最小值所在位 置。在机器学习的分类中经常用来作混淆矩阵的比较。

#导入模块
import numpy as np
import seaborn as sns
#加载航班数据
flights = sns.load_dataset('flights')
#pivot 是DataFrame中的一个函数
data = flights.pivot('month','year','passengers')
#绘制热力图
sns.heatmap(data=data)
#参数 annot :True
sns.heatmap(data=data,annot=True)
#以整数的形式显示
sns.heatmap(data=data,annot=True,fmt='d')
#去掉右侧图例
sns.heatmap(data=data,annot=True,fmt='d',linewidths=0.5,cbar=False)
#修改色系
sns.heatmap(data=data,annot=True,fmt='d',linewidths=0.5,cbar=False,cmap='YlGnBu')

在这里插入图片描述




十一、 配对图 (Pair Plot)

import seaborn as sns
import matplotlib.pyplot as pltdf = sns.load_dataset('iris')# 绘制配对图
sns.pairplot(df, hue='species')
plt.show()

在这里插入图片描述




十二、 回归分析图(replot)

线性回归图通过大量数据找到模型拟合线性回归线。

#lmplot()
sns.lmplot(data=iris,x='petal_length',y='petal_width')
#regplot()
sns.regplot(data=iris,x='petal_length',y='petal_width')

在这里插入图片描述




十三、 双变量分布图表(jointplot)

joint意为联合,顾名思义jointplot是一个双变量分布图表接口。绘图结果主要有三部分:绘图主体用于表达两个变量对应的散点图分布,在其上侧和右侧分别体现2个变量的直方图分布
在这里插入图片描述




十四、 点图(pointplot)

#加载模块
import seaborn as sns
#加载数据
titanic = sns.load_dataset('titanic')
#绘制点图
sns.pointplot(data=titanic,x='sex',y='survived')
#hue 进行分组
sns.pointplot(data=titanic,x='sex',y='survived',hue='class')

在这里插入图片描述




Seaborn总结
  Seaborn是一个功能强大且易于使用的数据可视化库,它特别适合数据科学家和数据分析师使用。通过Seaborn,用户可以轻松创建各种统计图形,以直观地展示数据的分布、关系和趋势。Seaborn与pandas的紧密结合使得数据分析和可视化可以无缝衔接,从而提高了工作效率。

此外,Seaborn的默认样式和调色板使得图形更具吸引力,同时也提供了高度的可定制性,用户可以根据需要调整图形的各个方面。这些特点使得Seaborn成为数据可视化领域的佼佼者之一。

然而,需要注意的是,虽然Seaborn提供了许多高级功能,但它仍然是基于matplotlib构建的。因此,对于想要深入了解数据可视化底层原理的用户来说,掌握matplotlib仍然是非常重要的。同时,Seaborn的某些高级功能可能需要一定的统计学知识才能充分理解和使用。

总之,Seaborn是一个强大而易于使用的数据可视化库,它可以帮助用户轻松地创建各种统计图形,以直观地展示数据的分布、关系和趋势。无论是数据科学家还是数据分析师,都应该掌握Seaborn的基本用法和高级功能,以提高数据分析和可视化的效率和质量。







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

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

相关文章

Java随笔1

1.编程中组件的概念: 在编程中,组件(Component)通常指的是一种可重用的、模块化的代码单元,它封装了特定的功能或用户界面元素,并提供了与其他代码进行交互的接口。组件可以看作是对数据和方法的简单封装&…

锁策略详解:互斥锁、读写锁、乐观锁与悲观锁、轻量级锁与重量级锁、自旋锁、偏向锁、可重入锁与不可重入锁、公平锁与非公平锁

一.锁策略 锁策略指的是在多线程编程中用于管理共享资源访问的规则和技术。它们确保在任何给定时间只有一个线程可以访问共享资源,以防止竞态条件和数据不一致性问题。常见的锁策略包括: 互斥锁(Mutex):最常见的锁类型…

王者营地ip地址怎么隐藏

在数字化快速发展的今天,网络安全和隐私保护成为了每个人都需要面对的重要问题。作为一款备受欢迎的游戏社区应用,王者营地为用户提供了丰富的游戏信息和交流平台。然而,与此同时,用户的IP地址也可能在不经意间被泄露,…

spring框架定时任务(@Scheduled)

内容: 在spring框架中,scheduled注解是用于声明定时任务的,以最简单的方式来创建定时任务。 注意: 要使用scheduled注解,需要确保已下几点: 1.spring应用程序已经开启了定时任务的开启。需要在配置类&am…

博客互动革命:如何打造活跃读者社区并提升参与度

CSDN 的朋友你们好,我是未来,今天给大家带来专栏【程序员博主教程(完全指南)】的第 10 篇文章“与读者互动”。本文揭示了提升技术博客参与度的秘诀。从评论互动到社交媒体策略,本文将指导你如何建立强大的读者社区。掌…

MYSQL数据库-SQL语句

数据库相关概念 名称全称简称数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)数据库管理系统操纵和管理数据库的大型软件DataBase Management System(DBMS)SQL操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准Structured Quer…

win10电脑录屏全攻略,从入门到精通,一篇文章就够了!

在当今科技时代,电脑录屏已经成为人们生活中越来越重要的一部分。无论是工作还是娱乐,我们都可能需要录制电脑屏幕来保存或分享一些内容。在本文中,我们将向您介绍win10电脑录屏的三种方法,并对每种方法进行详细说明,为…

宝塔安装多个版本的PHP,如何设置默认的PHP版本

如何将默认的PHP版本设置为7.3.32, 创建软链接指向7.3版本,关键命令:ln -sf /www/server/php/73/bin/php /usr/bin/php 然后再查看PHP版本验证一下结果 [rootlocalhost ~]# ln -sf /www/server/php/73/bin/php /usr/bin/php [rootlocalho…

青蒿素优化算法(AO)-2024年新算法-公式原理详解与性能测评 Matlab代码免费获取

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 原理简介 一、初始化阶段 二、综合淘汰阶…

2024创业热门选择:短视频带货,轻资产模式引领你飞翔

在当今这个信息爆炸的时代,短视频带货已经成为了一种全新的商业模式,为创业者提供了前所未有的机遇。特别是在2024年,短视频带货的潜力愈发显现,成为众多创业者的热门选择。本文将深入探讨 keJ0277 短视频带货的魅力所在&#xff…

element ui的确认提示框按钮样式修改

修改确认提示框的默认按钮样式,使用css强制修改 例: js代码: this.$confirm("您确定要删除吗?此操作无法撤销并且将永久删除所有数据。", "提示", { type: "warning", cancelButtonClass: "…

日本率先研发成功6G设备,刺痛了谁?为何日本能率先突破?

日本率先研发成功6G设备,无线数据速率是5G的百倍,这让日本方面兴奋莫名,毕竟日本在科技方面从1990年代以来太缺少突破的创新了,那么日本为何如今在6G技术上能率先突破呢? 日本在1980年代末期达到顶峰,它的科…

【算法】dfs

快乐的流畅:个人主页 个人专栏:《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、全排列1. 决策树2. 设计代码1. 全局变量2. dfs函数3. 细节问题 二、子集解法一1. 决策树2. 设计代码…

PCB的盘中孔

目录 一、什么时候可以在焊盘上打孔? 二、什么时候可以在焊盘上打孔? 绘制PCB时经常会遇到空间不够无法走线,这时我们会放置过孔使信号线穿过电路板一侧到达另一侧进行走线,这样既方便走线,也能够节省板子空间。有时…

Linux提权--第三方软件MYSQL数据库提权(WEB+本地)

免责声明:本文仅做技术交流与学习,非法搞事后果自负... 目录 靶场镜像: 过程: 手工: 下载mysql udf poc 进行编译. 进入数据库进行UDF导出 下载(上传) 创建do_system函数调用 探针(./LinEnum.sh),查找suid权限. 配合使用find调用执行 工具: 过程: 外连不上? 隧道出…

气膜建筑电源配置是怎样的—轻空间

在气膜建筑中,电源配置是确保建筑控制系统连续运行的重要组成部分。以下是该建筑的电源配置方案: 1. 市电供电与备用发电机: 为了应对市电中断等突发情况,系统采用市电供电与备用柴油发电机双重供电方式。这种配置保证了即使在市电…

UV胶的应用场景有哪些?

UV胶是一种特殊的胶水,其固化过程需要紫外光照射。它具有快速固化、高强度、无溶剂挥发等优点,因此在许多应用场景中被广泛使用。UV胶的应用场景非常广泛,包括但不限于以下几个方面: 1.电子产品组装: UV胶在电子产品的组装中扮演…

高校课程评价|基于SSM+vue的高校课程评价系统的设计与实现(源码+数据库+文档)

高校课程评价系统 目录 基于SSM+vue的高校课程评价系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1管理员功能模块 2学生功能 3教师功能 4专家功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

企业微信hook接口协议,ipad协议http,格式化发送@消息

格式化发送消息 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信send_userid是long要发送的人或群idisRoom是bool是否是群消息 请求示例 {"uuid":"1688853790599424","send_userid":1069605295501613…

实验0.0 Visual Studio 2022安装指南

Visual Studio 2022 是一个功能强大的开发工具,对于计算机专业的学生来说,它不仅可以帮助你完成学业项目,还能为你将来的职业生涯打下坚实的基础。通过学习和使用 Visual Studio,你将能够更高效地开发软件,并在编程领域…