用 Seaborn 做数据可视化(1)——绘图功能(1)可视化统计关系:sns.relplot()

Python画散点图和三维图之seaborn import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd df=pd.DataFrame({'x': range(1,101), 'y': np.random.randn(100)*15+range(1,101) }) my_dpi=96 plt.figure(figsize=(480/my_dpi, 480/my_dpi), dpi=my_dpi) plt.plot( 'x. 阅读详情

0. 介绍

0.1 概论

统计分析是理解数据集中的变量如何互相关联以及这些关系如依赖其他变量的一个过程。而可视化则是这个过程的一个核心部分,因为只有数据被正确的可视化,人们才能看到主导关系的趋势和模式。

0.2 可视化统计关系 relplot( )

relplot( ),(即:relational plots )是绘制统计关系最常见的函数。

seaborn.relplot(x=None, y=None,
                hue=None, size=None, style=None, 
                data=None, 
                row=None, col=None, 
                col_wrap=None, row_order=None, col_order=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, markers=None, dashes=None, style_order=None, legend='brief', 
                kind='scatter', 
                height=5, aspect=1, facet_kws=None, **kwargs)

relplot() 主要使用以下两种方法:

2.1 两个方法

scatterplot()

(with kind=“scatter”; the default)
即 relplot( )默认是绘制散点图

lineplot()

(with kind=“line”)

2.2 几个参数

说明:

  • 可以通过输入 hue 、style、size 三个参数来增加变量;或者改变相应颜色、样式、大小(若输入相同的变量)
  • 通过 row、col 两个参数可以按照行和列展开多个子图;
kind
  • kind=“scatter”(默认):绘制散点图 scatterplot()
  • kind=“line” :绘制线图 lineplot()
ci

ci:通过设置参数 ci (confidence interval) 来控制阴影部分。

  • 默认使用 ci;
  • ci=None 取消;
  • ci=“sd” 使用标准偏差而不是置信区间
hue

hue:在某一维度上, 用颜色区分(增加变量/维度/特征数量)

style

style:在某一维度上, 线的表现形式不同, 如 点线, 虚线等(增加变量/维度/特征数量)

size

size:控制数据点大小或者线条粗细(增加变量/维度/特征数量)

row、 col

显示分面图

1. relplot(kind=‘scatter’ ) 散点图

散点图(scatter plot):相关关系(两个变量)

散点图是统计可视化的中流砥柱。它使用点云来描述两个变量的联合分布。散点图的描述可以让我们直接看到大量的信息,帮我们判断出它们之间是否存在有意义的关系。

在 Seaborn 中有许多方法可以绘制散点图,但是最基本的是使用 scatterplot()。记住,当两个变量是数值型的时候,只能使用这种方式。
scatterplot() 是 relplot( ) 的默认种类,当然也可以手动设置 kind=“scatter”。

代码示例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")

数据导入

tips = sns.load_dataset('tips')

二维散点图

# 绘制二维散点图(两个变量)
sns.relplot(x='total_bill', y='tip', data=tips) # 发现其自带坐标轴名称

在这里插入图片描述

三维散点图—— hue/style/size

可以通过不同的参数传入不同的变量,从而增加了维度。

# 绘制三维散点图(使用参数 hue 增加了一个变量,用不同颜色进行区分。联想到用气泡图表示三维数据)
sns.relplot(x='total_bill', y='tip', hue='smoker', data=tips)

在这里插入图片描述
变量也可以是连续值

# 其中一变量是连续值的情况
sns.relplot(x="total_bill", y="tip", hue="size", data=tips);

在这里插入图片描述

通过不同的参数(style、zize),输入相同的变量,则可以在该变量的维度上进行相应的线条(样式、大小)改变

# 改变变量’smoker‘的样式
sns.relplot(x="total_bill", y="tip", hue="smoker", style="smoker",
            data=tips);

在这里插入图片描述

四维散点图—— hue + style

# 四变量/四维散点图
sns.relplot(x="total_bill", y="tip", hue="smoker", style="time", data=tips);

在这里插入图片描述

2. relplot(kind=‘line’ )线图

线图(line plot):展示连续性(单变量)

散点图非常有用,但却无法做单变量分析。
一个有效的方法是使用线图。
在 Seaborn 中可以使用 lineplot( )函数,或者直接使用 relplot( ),并设置 kind=‘line’

2.1 聚合和表示不确定性——参数ci

聚合和表示不确定性——设置参数 ci (confidence interval)

设置参数 ci (confidence interval) 来控制阴影部分

注:阴影部分是由于纵坐标上多个值导致的, 取值为均值, 阴影部分是置信区间.

# 默认使用的是围绕平均值的95%置信区间
fmri = sns.load_dataset('fmri')
sns.relplot(x='timepoint', y='signal', kind='line', data=fmri)

在这里插入图片描述

# 置信区间是使用自举,也可以将其禁用
sns.relplot(x="timepoint", y="signal", ci=None, kind="line", data=fmri);

在这里插入图片描述

# 使用标准偏差而不是置信区间
sns.relplot(x="timepoint", y="signal", kind="line", ci="sd", data=fmri);

在这里插入图片描述

2.2 绘制语义映射数据子集——参数 hue, size, and style

绘制语义映射数据子集——其它三个参数 hue, size, and style

sns.relplot(x="timepoint", y="signal", hue="event", kind="line", data=fmri);

在这里插入图片描述

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

在这里插入图片描述

2.3 绘制时间序列

线图通常用于显示与实际日期和时间相关的数据。

df = pd.DataFrame(dict(time=pd.date_range("2017-1-1", periods=500),
                       value=np.random.randn(500).cumsum()))
g = sns.relplot(x="time", y="value", kind="line", data=df)
g.fig.autofmt_xdate()

# relplot() 默认 y 是 x 的函数

在这里插入图片描述

3. 分面图(facets):展示多变量关系

有时候我们并不想将其它的变量也放入到同一张图中,这时我们就使用分面图去进行可视化。
这表示,我们将针对这个变量,建立多个坐标系和多张子图。(数量与变量的种类数有关)

  • 使用 col
  • 使用 row
tips.time

0      Dinner
1      Dinner
2      Dinner
3      Dinner
4      Dinner
        ...  
239    Dinner
240    Dinner
241    Dinner
242    Dinner
243    Dinner
Name: time, Length: 244, dtype: category
Categories (2, object): [Lunch, Dinner]

这里 time 含有 [Lunch, Dinner] 两个种类

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

在这里插入图片描述

sns.relplot(x="timepoint", y="signal", hue="subject",
            col="region", row="event", height=3,
            kind="line", estimator=None, data=fmri);

col=“region” :region 有几类,就有几列图(2种 parietal 和 frontal,2列图)
row=“event” :event 有几类,就有几行图
在这里插入图片描述

sns.relplot(x="timepoint", y="signal", hue="event", style="event",
            col="subject", col_wrap=5,
            height=3, aspect=.75, linewidth=2.5,
            kind="line", data=fmri.query("region == 'frontal'"));

在这里插入图片描述

小结

sns.relplot( )

参数 hue、style、size

  • 输入参数 x 和 y:分析x 和 y 两个变量的关系;
  • 输入参数 x、y 再加上 hue、style、size 并和 x 或者 y 的变量对应,则可以改变相应的属性;
  • 输入参数 x、y 再加上 hue、style、size 但传入的新的变量 z,则增加了维度,并附其相应的属性;

图示如下:

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
tips = sns.load_dataset('tips')

①

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

在这里插入图片描述②

sns.relplot(x='total_bill', y='tip', hue='tip', data=tips)
# sns.relplot(x='total_bill', y='tip', hue='total_bill, data=tips) # 也可以传入 x的变量

在这里插入图片描述③

sns.relplot(x='total_bill', y='tip', hue='smoker', data=tips)

在这里插入图片描述

参数 row、col

与上述通过不同属性的表现方式不同,这里通过参数 row 或者 col,使用多张子图的方式展现第三个变量与 x 和 y 的关系。

sns.relplot(x='total_bill', y='tip', col='smoker', data=tips) 

在这里插入图片描述

【数据挖掘重要笔记day30】3D图的绘制:3D散布图、3D曲面图 文章目录3D图形的绘制介绍3D散布图3D曲面图 3D图形的绘制 介绍 2D图形需要两个轴:x轴和y轴 3D图形需要x,y,z三个轴 plt和sns画不出来3D图形,没有这个功能 需要使用的是 mpl_toolkits.mplot3d.axes3d.Axes3D(fig) 有画布中的尺寸参数既可 3D散布图 import seaborn as sns import matplotlib.pyplot... 阅读详情

相关推荐

【统计可视化神器】Seaborn完全指南:10种高级图表+5个实战案例 | Python数据分析必备

Seaborn是一个基于Matplotlib的Python数据可视化库,专为统计绘图而设计。它提供了一套高级接口,使创建复杂且信息丰富的统计图表变得简单。优雅的默认样式:相比Matplotlib的基础风格,Seaborn提供了更现代、更美观的默认设置内置统计功能:直接集成统计模型,可一步完成数据计算和可视化无缝处理数据框:与pandas数据结构紧密集成,简化数据处理流程多变量关系探索:提供专门的工具来探索和可视化多维数据关系智能调色板:为分类、顺序和连续数据提供合适的配色方案# 自定义调色板。

熵数实验室 3807

sns.relplot

介绍采用sns的强大的绘图。可以绘制不止二维的信息。 【优美的排版】 用散点图关联变量 用线强调连续性 聚合和表示不确定性 用语义映射绘制数据子集 显示与facet的多个关系 ...

gaotihong的博客 2968

Seaborn入门实战:用统计语义思维做高效数据探索

数据可视化本质是将统计意图转化为图形表达的过程。Seaborn并非Matplotlib的替代品,而是基于Pandas DataFrame的高层语义封装,它将‘按组比较均值’‘观察分布偏态’等统计操作直接映射为`hue`、`kind`、`col`等可读参数,显著降低认知负荷。其默认配色、网格与字体设计遵循视觉认知科学,减少干扰、聚焦数据模式;内置分面(faceting)与自动缺失值处理能力,使多变量探索从繁琐编码变为声明式表达。在电商、金融风控与IoT等真实场景中,Seaborn已成为EDA阶段快速验证假设、

weixin_34293141的博客 503

seaborn.relplot函数参数说明与用法

seaborn.relplot函数参数说明与用法

mzm123321的博客 4788

别再手动量了!用Python+Open3D给BIM模型做‘CT扫描’,自动揪出施工误差(附完整代码)

本文介绍如何利用Python和Open3D技术实现BIM模型的毫米级施工误差自动检测。通过点云预处理、模型配准和偏差分析,系统能自动生成三维差异热力图和验收报告,显著提升施工质量检测效率。特别适合混凝土结构错位和钢结构安装偏差等常见问题的智能分析。

weixin_29284657的博客 243

我想自己组装一台服务器,微调大模型通义千问2.5 Omni 72B,但是我是个人购买,资金非常有限,最省的方案

阶段动作✅ 推理用 GGUF + llama.cpp + 4090 加载 14B INT4✅ 微调训练 Qwen2.5-7B-Chat,使用 LoRA / QLoRA❌ 放弃Qwen2.5-Omni-72B 全量微调(显存需求 >160G,不现实)

AngelCryToo的专栏 2829

详细的数据可视化库之Seaborn教程(一)——relplot:关系图(可视化统计量间的关系)

seaborn(一)——可视化统计量间的关系(relationship) seaborn关注的是统计量之间的关系。 x,y一般为数值型数据,关注两个数值变量之间的关系 sns.relplot() relplot(): sns.replot(kind=“scatter”),相当于scatterplot() sns.replot(kind=“line”),相当于lineplot() 可绘...

元气满满晨 2万+

UE5新手必看:Gameplay框架中的GameInstance与子系统实战指南(含蓝图配置)

本文为UE5新手提供了Gameplay框架中GameInstance与子系统的实战指南。文章深入解析了GameInstance作为全局数据中枢的核心作用与生命周期,并手把手演示了如何创建自定义GameInstance、构建模块化的子系统(如存档管理),以实现跨关卡的持久数据管理。指南旨在帮助开发者构建清晰、可维护的项目架构,解决数据管理混乱的常见痛点。

weixin_29015801的博客 575

数据可视化——seaborn(二)

上一篇文章主要讲述了有关seaborn的一些基础设置,可以让使我们绘制的图形更加饱满。接下来我们来看seaborn可以绘制哪些图形。左边是我们常用的绘图接口,右边则是一些基础设置,还有一些功能有待补充。依次来看这些函数的实现方式和具体功能。 一、关系图 1.scatterplot:散点图是统计可视化的重要组成部分。它使用点云来描述两个变量的联合分布,其中每个点代表数据集中的一个观察。这种描绘可以推断出大量关于它们之间是否有任何有意义的关系的信息。 seaborn.scatterplot(x

gswsssw的博客 2021

An工具介绍之摄像头

An工具介绍之摄像头

人生得意须尽欢 6187

S7-200SMART系列全套接线说明

SMART200接线方法,输入,输出,模拟量,面板,扩展糟等,并且详细说明接线原理。

文都龙哥 1万+

【Seaborn 结构化可视化指南】P1. 从 Axes-level 到 Figure-level:scatterplot / lineplot / relplot

本文系统梳理了 Seaborn 可视化核心用法,从环境搭建与内置数据集加载入手,详细讲解散点图与折线图的绘制方法,深入解析 hue、style、size 等参数的统计语义。进一步介绍了借助 Axes 对象控制图例、网格、边框与布局的技巧,并重点说明了 relplot 的分面机制及其与 scatterplot/lineplot 的层级差异。针对黑白出版场景,补充了灰度显示与线型区分的实用方案。全文辅以对比练习与规范代码示例,兼顾概念准确性与实战性,可作为数据分析入门、实验报告撰写及团队可视化的标准参考。

buzaijiu的博客 840

BMS硬件设计核心:安全、精度与EMC的工程平衡

电池管理系统(BMS)是保障锂电安全运行的关键嵌入式子系统,其本质是在高精度模拟测量、实时故障响应与复杂电磁环境适应性之间达成工程平衡。原理上,BMS依赖专用监测芯片(如BQ76920)实现微秒级硬件保护,结合主控MCU(如STM32)完成策略决策与通信管理,形成‘安全协处理器+智能主控’双架构。技术价值体现在对过压/欠压/过流/温度等多维故障的毫秒级闭环处置能力,支撑SOC/SOH估算可信度与系统鲁棒性。典型应用场景涵盖电动工具、轻型电动车及储能模块等中低串数电池组。本文聚焦BMS控制板在时钟布局、电源滤

weixin_30591519的博客 70

Python数据可视化—seaborn各类图形的绘制

直方图

slx_share的博客 1万+

华为OD机试 - 幸运数字(Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 3777

3 路由引入

在大型企业网络中,网络规模十分庞大,选用单一的路由协议无法满足网络的需求,因此多种路由协议共存的情况十分常见。或者出于业务逻辑或行政管理的考虑,会在不同的网络结构中设计和部署不同的路由协议,使路由的层次结构更加清晰可控。路由引入是具有方向性的,将路由信息从路由协议A引入到路由协议B(A-to-B),则路由协议B可获知A中的路由信息,但是此时,A还并不知晓B路由协议中的路由信息,除非配置B-to-A的路由引入。表3-1:各种路由协议的优先级。通过路由引入,可以实现路由信息在不同路由协议间传递。

lwljh134的博客 621

python数据可视化: 使用seaborn(下)

数据 详细请见上一篇. 数据载入: import pandas as pd import numpy as np from matplotlib import pyplot as plt, cm import seaborn as sns from sqlalchemy import create_engine import sqlite3 import warnings %matplotlib ...

泛泛之素 3807

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Seaborn数据可视化:Python高效统计绘图指南

数据可视化是数据分析的关键环节,Python生态中的Seaborn库基于Matplotlib构建,通过高级API和精美预设样式大幅提升了统计图形的创建效率。其核心原理是通过封装常用统计图表逻辑,提供DataFrame原生支持,并内置颜色主题管理系统。在技术价值上,Seaborn特别适合处理包含分类变量的数据集,能快速生成箱线图、分布图、热力图等专业图表。实际应用场景涵盖电商用户行为分析、A/B测试结果展示、客户分群可视化等领域。结合热词分析,Seaborn在Python数据科学栈中与Pandas深度集成,同

weixin_34006468的博客 293

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python - seaborn sns

Q: 这个怎么搞用sns? 可以用hue sns.scatterplot(x, y, data=df, hue='smoker') plt.show()

michael_wq的博客 5816

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Python】使用pip安装seaborn sns及失败解决方法与sns.load_dataset(“tips“)

【Python】使用pip安装seaborn sns及失败解决方法与sns.load_dataset(“tips“)

努力才是唯一的入场券。 1万+

读取数据并可视化——seaborn

seaborn 资料学习来源:优快云博主「不会写作文的李华」的原创文章+博主[ZSYL 链接已附在文章末尾

Annaaphq的博客 2412

Seaborn数据可视化:高效统计图表绘制指南

数据可视化是数据分析的关键环节,通过图形化展示能直观揭示数据规律。Python生态中,Seaborn作为基于Matplotlib的高级封装库,凭借简洁API设计和精美默认样式,大幅提升了统计图表制作效率。其核心原理是通过预置统计图表模板和智能样式系统,将复杂的数据映射过程简化为单行函数调用。在技术价值方面,Seaborn特别适合快速构建箱线图、热力图等专业统计图表,并支持与Pandas数据结构深度集成。典型应用场景包括探索性数据分析(EDA)、科研论文图表生成以及商业报告可视化。通过内置的泰坦尼克、鸢尾花等

weixin_33997389的博客 560

(一)seaborn教程——可视化统计关系

简介:学习笔记为官网教程seaborn教程0.9.0 安装最新版本方法: pip install git+https://github.com/mwaskom/seaborn.git 导入包和设置背景 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns ...

Haward 3873

Seaborn数据可视化:从入门到高级技巧

数据可视化是数据分析的关键环节,Python生态提供了多种工具实现这一目标。作为基于Matplotlib的高级封装,Seaborn通过简化API设计和内置统计图表类型,显著提升了数据探索效率。其核心原理在于对Matplotlib的二次封装,自动处理样式、图例等可视化细节,同时深度集成Pandas数据结构。在技术价值方面,Seaborn特别适合快速生成统计图形,如箱线图、热图、回归图等,广泛应用于数据探索、商业分析和学术研究场景。本文以客户满意度调查为例,展示如何用3行代码实现原本需要50行Matplotli

weixin_33860553的博客 345

python seaborn_Python可视化Seaborn库详解——绘图方法

在《Python可视化Seaborn库详解——绘图设置 》一文中,我们介绍了Seaborn库的绘图参数设置,本文我们将介绍具体的绘图方法。其实虽然Seaborn库看着绘图函数多,但有几个函数的泛化性非常强,通过参数的设置是可以绘出多种图形的。为了便于掌握这些函数,本文会对这些方法进行归纳整理,力争做到提纲挈领的目的。绘图方法分类结合图形的性质,将常规的可视化图形分为了三类。其中,线性关系所涉及到的...

weixin_39725756的博客 322

Seaborn数据可视化:从入门到精通

数据可视化是数据分析的核心环节,通过图形化展示数据分布、趋势和关联关系。Seaborn作为基于Matplotlib的高级统计图形库,通过封装复杂的统计语义和美学设计,显著简化了专业图表的创建流程。其核心价值在于提供开箱即用的最佳实践,如自动处理颜色编码、图例排版和统计注释,使开发者能专注于数据洞察而非图形细节。在Python生态中,Seaborn特别适合处理Pandas数据框,内置支持箱线图、核密度估计、分面网格等高级功能。典型应用场景包括探索性数据分析(EDA)、学术论文图表生成以及商业报告可视化。通过集

weixin_30740581的博客 468
上一篇: 深度之眼吴恩达机器学习课程学习记录——(2)——week1 打卡1
下一篇: 用 Seaborn 做数据可视化(1)——绘图功能(2)可视化分类数据:sns.catplot()
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值