首页 > 其他分享 >数据可视化专题——Seaborn简介

数据可视化专题——Seaborn简介

时间:2022-10-12 10:06:57浏览次数:56  
标签:hue seaborn 简介 Seaborn matplotlib 可视化 sns tips data

Seaborn 是一个用 Python 制作统计图形的库。 它建立在 matplotlib 之上,并与 pandas 数据结构紧密集成。Seaborn 可帮助您探索和理解您的数据。 它的绘图功能对包含整个数据集的数据框和数组进行操作,并在内部执行必要的语义映射和统计聚合以生成信息图。 其面向数据集的声明式 API 让您可以专注于绘图的不同元素的含义,而不是关注如何绘制它们的细节。请看以下示例:

# Import seaborn
import seaborn as sns

# Apply the default theme
sns.set_theme()

# Load an example dataset
tips = sns.load_dataset("tips")

# Create a visualization
sns.relplot(
data=tips,
x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
)

数据可视化专题——Seaborn简介_数据

下面我们逐句解释:

# Import seaborn
import seaborn as sns

      seaborn是本例中需要导入的库,为了方便将其缩写为sns。在后台,seaborn使用matplotlib来绘图。需要在绘图结束之后调用matplotlib.pyplot.show()来显示图片。

# Apply the default theme
sns.set_theme()

      这使用了 matplotlib rcParam 系统,并且会影响所有 matplotlib 绘图的外观,即使您不使用 seaborn 制作它们。 除了默认主题之外,还有其他几个选项,您可以独立控制绘图的样式和缩放比例,以便在演示上下文之间快速转换您的工作(例如,制作一个在演讲期间投影时具有可读字体的图形版本 )。 如果你喜欢 matplotlib 默认值或喜欢不同的主题,你可以跳过这一步,仍然使用 seaborn 绘图功能。

# Load an example dataset
tips = sns.load_dataset("tips")

      文档中的大多数代码将使用 load_dataset() 函数来快速访问示例数据集。 这些数据集没有什么特别之处:它们只是 pandas 数据帧,我们可以使用 pandas.read_csv() 加载它们或手动构建它们。 文档中的大多数示例都将使用 pandas 数据框指定数据,但 seaborn 对它接受的数据结构非常灵活。

# Create a visualization
sns.relplot(
data=tips,
x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
)

      该图使用对 seaborn 函数 relplot() 的一次调用显示了tips 数据集中五个变量之间的关系。 请注意我们如何仅提供变量的名称及其在图中的角色。 与直接使用 matplotlib 不同,没有必要根据颜色值或标记代码指定绘图元素的属性。 在幕后,seaborn 处理了从数据框中的值到 matplotlib 理解的参数的转换。 这种声明性方法让您可以专注于您想要回答的问题,而不是关注如何控制 matplotlib 的细节。

1 用于统计图形的高级 API

      没有通用的最佳数据可视化方法。 不同的问题最好用不同的情节来回答。 Seaborn 通过使用一致的面向数据集的 API 可以轻松地在不同的视觉表示之间切换。函数 relplot() 之所以这样命名,是因为它旨在可视化许多不同的统计关系。 虽然散点图通常很有效,但一个变量代表时间度量的关系最好用一条线表示。 relplot() 函数有一个方便的 kind 参数,可让您轻松切换到此替代表示:

dots = sns.load_dataset("dots")
sns.relplot(
data=dots, kind="line",
x="time", y="firing_rate", col="align",
hue="choice", size="coherence", style="choice",
facet_kws=dict(sharex=False),
)

数据可视化专题——Seaborn简介_核密度估计_02

      请注意散点图和折线图中如何使用大小和样式参数,但它们对两种可视化的影响不同:更改散点图中的标记区域和符号与线宽和折线图中的虚线。 我们不需要记住这些细节,让我们专注于情节的整体结构和我们希望它传达的信息。

2 统计估计

      通常,我们对作为其他变量函数的一个变量的平均值感兴趣。 许多 seaborn 函数将自动执行回答这些问题所必需的统计估计:

fmri = sns.load_dataset("fmri")
sns.relplot(
data=fmri, kind="line",
x="timepoint", y="signal", col="region",
hue="event", style="event",
)

数据可视化专题——Seaborn简介_核密度估计_03

      当估计统计值时,seaborn 将使用自举来计算置信区间并绘制表示估计不确定性的误差线。seaborn 中的统计估计超出了描述性统计。 例如,可以通过使用 lmplot() 包含线性回归模型(及其不确定性)来增强散点图:

sns.lmplot(data=tips, x="total_bill", y="tip", col="time", hue="smoker")

数据可视化专题——Seaborn简介_数据集_04

3 分布表示

      统计分析需要有关数据集中变量分布的知识。 seaborn 函数 displot() 支持多种可视化分布的方法。 其中包括直方图等经典技术和核密度估计等计算密集型方法:

sns.displot(data=tips, x="total_bill", col="time", kde=True)

数据可视化专题——Seaborn简介_数据_05

      Seaborn 还尝试推广功能强大但不太熟悉的技术,例如计算和绘制数据的经验累积分布函数:

sns.displot(data=tips, kind="ecdf", x="total_bill", col="time", hue="smoker", rug=True)

数据可视化专题——Seaborn简介_数据_06

4 分类数据图

      seaborn 中的几种特殊绘图类型面向可视化分类数据。 它们可以通过 catplot() 访问。 这些图提供了不同级别的粒度。 在最好的水平上,您可能希望通过绘制一个“群”图来查看每个观察结果:一个散点图,它调整了点在分类轴上的位置,使它们不重叠:

sns.catplot(data=tips, kind="swarm", x="day", y="total_bill", hue="smoker")

数据可视化专题——Seaborn简介_数据_07

      或者,您可以使用核密度估计来表示从中采样点的基础分布:

sns.catplot(data=tips, kind="violin", x="day", y="total_bill", hue="smoker", split=True)

数据可视化专题——Seaborn简介_核密度估计_08

      或者您可以仅显示每个嵌套类别中的平均值及其置信区间:

sns.catplot(data=tips, kind="bar", x="day", y="total_bill", hue="smoker")

数据可视化专题——Seaborn简介_数据_09

5 复杂数据集的多元视图

      有些seaborn函数可以将多个图组合在一起,以便快速展现数据集的摘要信息。其中之一就是jointplot(),它关注单一关系,能够绘制了两个变量之间的联合分布以及每个变量的边际分布:

penguins = sns.load_dataset("penguins")
sns.jointplot(data=penguins, x="flipper_length_mm", y="bill_length_mm", hue="species")

数据可视化专题——Seaborn简介_数据_10

另外,还有函数pairplot(),能够展现更开阔的视角。它能够展示所有两两组合的变量间的联合分布以及边际分布,如下所示:

sns.pairplot(data=penguins, hue=“species")

数据可视化专题——Seaborn简介_数据_11

6 与 matplotlib 的关系

      Seaborn 与 matplotlib 的集成允许您在 matplotlib 支持的许多环境中使用它,包括笔记本中的探索性分析、GUI 应用程序中的实时交互以及多种光栅和矢量格式的存档输出。

      虽然你可以只使用 seaborn 函数来提高工作效率,但完全自定义你的图形需要一些 matplotlib 的概念和 API 知识。 对于 seaborn 的新用户来说,学习曲线的一个方面是知道什么时候需要下拉到 matplotlib 层才能实现特定的定制。 另一方面,来自 matplotlib 的用户会发现他们的大部分知识转移。

      Matplotlib 拥有全面而强大的 API; 几乎可以根据自己的喜好更改图形的任何属性。 seaborn 的高级界面和 matplotlib 的深度可定制性相结合,将允许您快速浏览数据并创建可定制为出版质量最终产品的图形。

标签:hue,seaborn,简介,Seaborn,matplotlib,可视化,sns,tips,data
From: https://blog.51cto.com/u_14857544/5748892

相关文章

  • 深圳华锐视点:工业数字孪生可视化系统应用有哪些优势
    数字孪生技术作为引领新一轮科技革命和产业变革的关键力量,在工业实体行业的应用还有一段路要走,传统工业制造信息分散、对接不及时及管理效率低等,融合AI/5G/VR/大数据等......
  • 第1章-JSP 简介
    目录什么是JSP安装配置JSP运行环境JSP页面JSP页面简介设置Web服务目录JSP运行原理JSP与JavaServlet的关系HTML与JavaScript什么是JSP★JSP是JavaServerPage的缩写,是......
  • 效率办公:以最佳方式制作可视化数据报告
    ​​https://wentu.yimian.com.cn/​​1、​​点我最快获取软件​​2、​​点我获悉三点声明​​......
  • python爬取招聘网站数据,利用tableau可视化交互大屏,指导你如何学习、找工作!
    如果觉得文章写得好,如果你想要博客文章中的数据,请关注公众号:【数据分析与统计学之美】,添加作者【个人微信】,进群和作者交流!目录  ​​1、项目背景​​​  ​​​​​​......
  • 可视管廊 | Sovit3D打造数字孪生城市智慧管网三维可视化综合监控平台
    建设背景城市管网系统是城市公共事业的重要组成部分,近年来,随着城镇化基础建设的发展,各城市都建有错综复杂的地上地下综合管网设施,这些管网通常都存在着管理部门多、数据准......
  • logback简介及logback.xml配置详解
    一、logback的介绍Logback是由log4j创始人设计的另一个开源日志组件,官方网站:http://logback.qos.ch。它当前分为下面下个模块:logback-core:其它两个模块的基础模块log......
  • 敏捷简介
    1.敏捷的起源 敏捷宣言2.什么是敏捷敏捷是创建和响应变化的能力。这是用于处理不确定性、应对持续变化的环境,并最终取得成功的方法。 从交付理解敏捷,假设需求稳......
  • Django简介和安装
    目录​​Django​​​​MVC模型​​​​Django的MTV模型​​​​Django的安装​​​​虚拟环境​​DjangoDjango是一个开放源代码的Web应用框架,由Python写成,其网站的特点是......
  • Nginx简介
    Nginx简介1.什么是nginx?Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。Nginx(en......
  • 基带传输系统的简介和研究的意
    1.1 研究的意义由于基带传输系统在数字传输系统中有不可替代的作用,其应用范围也随着技术的发展渗入网络通信、卫星通信及测控、手机通信、数字电视、数字电话等生活、科技......