跟着exercise案例学Seaborn之FacetGrid

简介: 跟着exercise案例学Seaborn之FacetGrid

本期,我们来学习Seaborn中的FacetGridFacetGrid是Seaborn库中的一个功能,它允许你以网格状布局创建数据的多个子集。你可以创建一个图表网格,其中每个图表代表一个类别。这些子集由FacetGrid()的'col'和'row'属性中指定的列名决定。网格内的各个图表可以是seaborn支持的任何类型的图表,如散点图、折线图、条形图或直方图。同样,我们还是用一个exercise数据集来具体说一下FacetGrid的用法。一、exercise数据集exercise数据集包含了运动者的一些运动数据,包括:脉搏、饮食、运动时间等等。具体为:

892f4350c5183971ba3bb98dd6ccdb56.png


其中,

id:运动者编号

diet:饮食(low fat 低脂、no fat 无脂)

pulse:脉搏

time:运动的时间

kind:运动的种类


具体数据获取如下:

通过百度网盘分享的文件:exercise.csv链接:https://pan.baidu.com/s/1BNjSBcyRP9ghtlJlWkrS7Q提取码:6666

二、exercise数据集的Facetgrid图

我们用Facetgrid画一下不同运动状态下的脉搏率图。


# 用FacetGrid创建运动种类子图g = sns.FacetGrid(df, col='kind', palette='Paired')
#画一下每个运动类型的脉搏图g.map(sns.boxplot, 'pulse')g.set_titles(col_template="{col_name}状态下的脉搏率 ")

e1da848b7efa20c8025ccbbeecb68e8e.png

从Facetgrid图中,我们可以看到随着活动强度的增加,脉搏率范围的扩大(休息<走路<跑步)。

下面,我们再回到penguins数据集里,看看不同岛屿企鹅形态的变化。


# 创建子图g = sns.FacetGrid(df1, col='island',hue='sex', palette='Paired')
# 画一下不同岛屿上企鹅脚蹼长度和重量之间的关系图g.map(sns.scatterplot, 'flipper_length_mm', 'body_mass_g')g.set_titles(template="Penguins of {col_name} Island")g.add_legend();

8e06d65dd6eefcb4c88093cdfe98dc99.png

从上图中,我们可以看到:

  • 在Biscoe(比斯科岛)的企鹅中,其脚蹼长度范围为180毫米至240毫米,比其他两个岛屿的范围更宽。
  • Biscoe(比斯科岛)上可以观察到两种不同的企鹅群体(可能是不同的物种)。
  • 雌性企鹅的脚蹼长度似乎比雄性企鹅短。


三、一些参数设置

facetgrid参数主要包括以下几个:

  • data: DataFrame格式,包含了你想要可视化的数据。
  • row和col: 字符串或字符串列表,指定用于创建网格的DataFrame中的列名。这些列的唯一值将决定网格的行或列。
  • hue: 可选参数,用于在子图中进一步区分数据点的颜色。它通常用于表示另一个分类变量。
  • map和map_async: 这些方法用于将绘图函数映射到FacetGrid的每个子图上。map_async是异步版本,可以加快绘图速度。
  • FacetGrid.map_dataframe: 特别用于将绘图函数映射到 FacetGrid 的每个子图上,并确保数据以正确的格式传递给绘图函数。
  • figsize: 用于设置整个FacetGrid图形的大小。
  • despine: 用于去除子图周围的边框。
  • setset_axis_labels: 用于设置整个FacetGrid的轴标签。
  • set_titles: 用于设置子图的标题。
  • add_legend: 用于在FacetGrid中添加图例。

下面,我们给企鹅图中加一个回归线,并设置一下X轴、y轴。


# 创建子图g = sns.FacetGrid(df1, col='island',hue='sex', palette='Paired')
# 画一下不同岛屿上企鹅脚蹼长度和重量之间的关系图g.map(sns.scatterplot, 'flipper_length_mm', 'body_mass_g')g.set_titles(template="{col_name}岛上的企鹅")g.set_axis_labels("企鹅脚蹼的长度mm", "企鹅的重量g")g.set(xlim=(150, 250), ylim=(2000, 7000), xticks=[150, 200, 250], yticks=[2000, 5000, 7000])g.refline(y=df1["body_mass_g"].median())g.add_legend();


73f9fb134d5d9218e23a8b7759125cae.png

四、结语FacetGrid是一个功能强大的工具,它非常适合于比较和分析数据集中的不同组或类别,同时,可以无缝创建子图用于数据展示,让你轻松地创建复杂且信息丰富的多维数据可视化图形。当然,想要了解更多关于Facetgrid的功能,请参考官方文档:https://seaborn.pydata.org/generated/seaborn.FacetGrid.html自己动手试试吧?

相关文章
|
5天前
|
数据采集 前端开发 NoSQL
Python编程异步爬虫实战案例
Python编程异步爬虫实战案例
15 2
|
5天前
|
数据采集 自然语言处理 API
Python反爬案例——验证码的识别
Python反爬案例——验证码的识别
14 2
|
6天前
|
iOS开发 MacOS Python
Python编程小案例—利用flask查询本机IP归属并输出网页图片
Python编程小案例—利用flask查询本机IP归属并输出网页图片
13 1
|
8天前
|
存储 大数据 Python
案例学Python:filter()函数的用法,高级!
`filter()`函数是Python中处理序列数据的强大工具,它允许我们高效地根据条件过滤元素。通过结合匿名函数、常规函数或直接利用Python的内置逻辑,`filter()`提供了灵活且高效的过滤机制,尤其在大数据处理和内存敏感的应用中展现出其价值。掌握 `filter()`的使用,不仅能提升代码的可读性和效率,还能更好地适应Python的函数式编程风格。
18 2
|
8天前
|
Python
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
11 1
|
2天前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
10 0
|
6天前
|
人工智能 API iOS开发
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
17 0
|
6天前
|
人工智能 小程序 Python
Python编程小案例——编一个事件提醒弹窗小程序
Python编程小案例——编一个事件提醒弹窗小程序
10 0
|
8天前
|
IDE 开发工具 iOS开发
Python编程案例:招生档案按省份地区归档
Python编程案例:招生档案按省份地区归档
10 0
|
8天前
|
IDE 开发工具 iOS开发
Python编程案例:中文金额转换并计算
Python编程案例:中文金额转换并计算
13 0