seaborn 子图_Seaborn FacetGrid:进一步完善子图

seaborn 子图

Data visualizations are essential in data analysis. The famous saying “one picture is worth a thousand words” holds true in the scope of data visualizations as well. In this post, I will explain a well-structured, very informative collection of subplots: FacetGrid.

数据可视化在数据分析中至关重要。 著名的谚语“一张图片值得一千个单词”在数据可视化的范围内也是如此。 在这篇文章中,我将解释一个结构良好,内容丰富的子图集合: FacetGrid

FacetGrid is basically a grid of subplots. Matplotlib supports creating figures with multiple axes and thus allows to have subplots in one figure. What FacetGrid puts on top of matplotlib’s subplot structure:

FacetGrid基本上是子图的网格。 Matplotlib支持创建具有多个轴的图形,因此允许在一个图形中包含子图。 FacetGrid在matplotlib的子图结构之上放了什么:

  • Making the process easier and smoother (with less code)

    使过程更轻松,更流畅(使用更少的代码)
  • Transfering the structure of dataset to subplots

    将数据集的结构转移到子图

The distribution of a variable or relationship among variables can easily be discovered with FacetGrids. They can have up to three dimensions: row, column, and hue. It will be more clear as we go through examples. So, let’s start.

使用FacetGrids可以轻松发现变量的分布或变量之间的关系。 它们最多可以具有三个维度: rowcolumnhue 。 通过示例我们将更加清楚。 所以,让我们开始吧。

As always we start with importing libraries.

与往常一样,我们从导入库开始。

Note: FacetGrid requires the data stored in a pandas dataframe where each row represents an observation and columns represent variables. Thus, we also import pandas.

注意 :FacetGrid要求将数据存储在pandas数据框中,其中每一行代表一个观测值,而各列代表变量。 因此,我们也进口大熊猫。

import numpy as np
import pandas as pdimport matplotlib.pyplot as plt
import seaborn as sns
sns.set(style='darkgrid', color_codes=True)%matplotlib inline

We will use the built-in “tips” dataset of seaborn.

我们将使用seaborn的内置“提示”数据集。

tip = sns.load_dataset("tips")
tip.head()
Image for post

FacetGrid object is initialized by passing a dataframe and name of variables to create the structure of axes. The variables used to initialize FacetGrid object needs to be categorical or discrete. The grid structure is created according to the number of categories. For instance, “time” column has two unique values.

通过传递数据框和变量名称以创建轴的结构来初始化FacetGrid对象。 用于初始化FacetGrid对象的变量必须是分类的离散的 。 根据类别数创建网格结构。 例如,“时间”列具有两个唯一值。

tip['time'].value_counts()
Dinner 176
Lunch 68
Name: time, dtype: int64

Let’s initialize a FacetGrid object by passing “time” variable to col parameter.

让我们通过将“ time”变量传递给col参数来初始化FacetGrid对象。

g = sns.FacetGrid(tip, col='time')
Image for post

We’ve just created a very simple grid with two facets (each subplot is a facet). The size of facets are adjusted using height and aspect parameters.

我们刚刚创建了一个非常简单的带有两个小平面的网格(每个子图都是一个小平面)。 使用高度 宽比参数调整构面的大小。

  • Height is the height of facets in inches

    高度是刻面的高度,以英寸为单位
  • Aspect is the ratio of width and height (width=aspect*height). Default value of aspect is 1.

    宽高比是宽度与高度的比率(宽=高宽比*高)。 方面的默认值为1。

Let’s update the grid with larger facets.

让我们用更大的方面更新网格。

g = sns.FacetGrid(tip, col='time', height=5)
Image for post

It is time to plot data on the grid using FacetGrid.map() method. It takes a plotting function and variable(s) to plot as arguments.

现在该使用FacetGrid.map()方法在网格上绘制数据了。 它需要一个绘图函数和一个或多个变量作为参数进行绘图。

g = sns.FacetGrid(tip, col='time', height=5)
g.map(plt.hist, "total_bill")
Image for post

The grid shows histogram of “total_bill” based on “time”. Depending on the plotting function, we may need to pass multiple variables for map method. For instance, scatter plots require two variables.

网格显示基于“时间”的“总账单”直方图。 根据绘图功能,我们可能需要为map方法传递多个变量。 例如,散点图需要两个变量。

g = sns.FacetGrid(tip, col='time', height=5)
g.map(plt.scatter, "total_bill", "tip")
Image for post

Let’s add one more dimension to the grid with row parameter.

让我们通过row参数向网格添加一个维度。

g = sns.FacetGrid(tip, row='sex', col='time', height=4)
g.map(plt.scatter, "total_bill", "tip")
Image for post

Both “sex” and “time” columns have two distinct values so a 2x2 FacetGrid is created. As we can see from the plot above, “total_bill” and “tip” variables have a similar trend for males and females.

“性别”和“时间”列都有两个不同的值,因此创建了2x2 FacetGrid。 从上图可以看出,男性和女性的“ total_bill”和“ tip”变量趋势相似。

The hue parameter allows to add one more dimension to the grid with colors.

hue参数允许使用颜色向网格添加一个维度。

g = sns.FacetGrid(tip, row='sex', col='time', hue='smoker',    
height=4)
g.map(plt.scatter, "total_bill", "tip")
g.add_legend()
Image for post

We now have an overview of the relationship among “total_bill”, “tip”, and “smoker” variables.

现在,我们对“ total_bill”,“ tip”和“ smoker”变量之间的关系进行了概述。

The “day” column has 4 unique values:

“天”列具有4个唯一值:

tip.day.value_counts()
Sat 87
Sun 76
Thur 62
Fri 19
Name: day, dtype: int64

We can create a FacetGrid that shows the distribution of “total_bill” in different days. It will show if customers spend more on any particular day.

我们可以创建一个FacetGrid来显示“ total_bill”在不同日期的分布。 它将显示客户在特定日期是否花费更多。

g = sns.FacetGrid(tip, row='day', 
row_order = tip.day.value_counts().index,
height=1.5, aspect=4)g.map(sns.distplot, "total_bill", hist=False)
Image for post

It seems like people tend to spend a little more on the weekend. We have used row_order parameter for this plot. As the name suggests, it determines the order of facets. In the previous plots, we used plotting functions from matplotlib.pyplot interface. But, for the last one, we used a plotting function from seaborn package. It is a nice feature of FacetGrid that provides additional flexibility.

人们似乎倾向于在周末花更多的钱。 我们已为此图使用row_order参数。 顾名思义,它决定了构面的顺序。 在先前的绘图中,我们使用了来自matplotlib.pyplot接口的绘图函数。 但是,对于最后一个,我们使用了seaborn包中的绘图功能。 这是FacetGrid的一项不错的功能,可提供额外的灵活性。

There are many more features that can be added on FacetGrids in order to enrich both the functionality and appearance of them. If you want to go deeper, I suggest going over seaborn documentation on FacetGrid.

可以在FacetGrids上添加更多功能,以丰富其功能和外观。 如果你想更深入,我建议去了上seaborn文档FacetGrid 。

Thank you for reading. Please let me know if you have any feedback.

感谢您的阅读。 如果您有任何反馈意见,请告诉我。

  • https://seaborn.pydata.org/generated/seaborn.FacetGrid.html

    https://seaborn.pydata.org/Generated/seaborn.FacetGrid.html

  • https://seaborn.pydata.org/tutorial/axis_grids.html#grid-tutorial

    https://seaborn.pydata.org/tutorial/axis_grids.html#grid-tutorial

翻译自: https://towardsdatascience.com/seaborn-facetgrid-taking-subplots-further-15ee7af54e44

seaborn 子图

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

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

相关文章

基于easyui开发Web版Activiti流程定制器详解(六)——Draw2d的扩展(一)

题外话: 最近在忙公司的云项目空闲时间不是很多,所以很久没来更新,今天补上一篇! 回顾: 前几篇介绍了一下设计器的界面和Draw2d基础知识,这篇讲解一下本设计器如何扩展Draw2d。 进…

深度学习网络总结

1.Siamese network Siamese [saiə mi:z] 孪生 左图的孪生网络是指两个网络通过共享权值实现对输入的输出,右图的伪孪生网络则不共享权值(pseudo-siamese network)。 孪生神经网络是用来衡量两个输入的相似度,可以用来人脸验证、语义相似度分析、QA匹配…

异常检测时间序列_时间序列的无监督异常检测

异常检测时间序列To understand the normal behaviour of any flow on time axis and detect anomaly situations is one of the prominent fields in data driven studies. These studies are mostly conducted in unsupervised manner, since labelling the data in real lif…

python设计模式(七):组合模式

组合,将对象组合成树状结构,来表示业务逻辑上的[部分-整体]层次,这种组合使单个对象和组合对象的使用方法一样。 如描述一家公司的层次结构,那么我们用办公室来表示节点,则总经理办公司是根节点,下面分别由…

存款惊人_如何使您的图快速美丽惊人

存款惊人So, you just finished retrieving, processing, and analyzing your data. You grab your data and you decide to graph it so you can show others your findings. You click ‘graph’ and……因此,您刚刚完成了数据的检索,处理和分析。 您获…

pytest自动化6:pytest.mark.parametrize装饰器--测试用例参数化

前言:pytest.mark.parametrize装饰器可以实现测试用例参数化。 parametrizing 1. 下面是一个简单是实例,检查一定的输入和期望输出测试功能的典型例子 2. 标记单个测试实例为失败,例如使用内置的mark.xfail,则跳过该用例不执行直…

基于easyui开发Web版Activiti流程定制器详解(六)——Draw2d详解(二)

上一篇我们介绍了Draw2d整体结构,展示了组件类关系图,其中比较重要的类有Node、Canvas、Command、Port、Connection等,这篇将进一步介绍Draw2d如何使用以及如何扩展。 进入主题: 详细介绍一下Draw2d中几个…

Ubuntu16.04 开启多个终端,一个终端多个小窗口

Ubuntu16.04 开启多个终端,一个终端多个小窗口 CtrlShift T,一个终端开启多个小终端 CtrlAlt T 开启多个终端 posted on 2019-03-15 11:26 _孤城 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/liuweijie/p/10535904.html

敏捷 橄榄球运动_澳大利亚橄榄球迷的研究声称南非裁判的偏见被证明是错误的

敏捷 橄榄球运动In February 2020, an Australian rugby fan produced a study, claiming to show how South African rugby referees were exhibiting favorable bias towards South African home teams. The study did not consider how other countries’ referees treat So…

activiti 部署流程图后中文乱码

Activiti工作流引擎使用 1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百度百科:工作流引擎 1.1 我与工作流引擎 在第一家公司工作的时候主要任务就是开发OA系统,当然基本都是有工作流的支持,不过当时使用的工作流引擎是公司一些…

Luogu 4755 Beautiful Pair

分治 主席树。 设$solve(l, r)$表示当前处理到$[l, r]$区间的情况,我们可以找到$[l, r]$中最大的一个数的位置$mid$,然后扫一半区间计算一下这个区间的答案。 注意,这时候左半边是$[l, mid]$,而右区间是$[mid, r]$,我…

网络传播动力学_通过简单的规则传播动力

网络传播动力学When a single drop of paint is dropped on a surface the amount of space that the drop will cover depends both on time and space. A short amount of time will no be enough for the drop to cover a greater area, and a small surface will bound the…

BPMN2.0-概要

BPMN2.0-概要 作者:AliKevin2011,发布于2012-6-27 一、BPMN简介 BPMN(Business Process Model And Notation)- 业务流程模型和符号 是有BPMI(Business Process Management Initiative)开发的一套变准的业务…

Activiti 简易教程

一搭建环境 1.1 JDK 6 activiti 运行在版本 6以上的 JDK上。转到 Oracle Java SE下载页面,点击按钮“下载 JDK”。网页中也有安装说明。要核实安装是否成功,在命令行上运行 java–version。将打印出安装的 JDK的版本。 1.2 Ant 1.8.1 从 Ant[http://…

koa2 中使用 svg-captcha 生成验证码

1. 安装svg-captcha $ npm install --save svg-captcha 2. 使用方法 生成有4个字符的图片和字符串const svgCaptcha require(svg-captcha)const cap svgCaptcha.create({size: 4, // 验证码长度width:160,height:60,fontSize: 50,ignoreChars: 0oO1ilI, // 验证码字符中排除 …

iris数据集 测试集_IRIS数据集的探索性数据分析

iris数据集 测试集Let’s explore one of the simplest datasets, The IRIS Dataset which basically is a data about three species of a Flower type in form of its sepal length, sepal width, petal length, and petal width. The data set consists of 50 samples from …

Oracle 12c 安装 Linuxx86_64

1)下载Oracle Database 12cRelease 1安装介质 官方的下载地址: 1:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 2:https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number16496…

python初学者_初学者使用Python的完整介绍

python初学者A magical art of teaching a computer to perform a task is called computer programming. Programming is one of the most valuable skills to have in this competitive world of computers. We, as modern humans, are living with lots of gadgets such as …

医疗大数据处理流程_我们需要数据来大规模改善医疗流程

医疗大数据处理流程Note: the fictitious examples and diagrams are for illustrative purposes ONLY. They are mainly simplifications of real phenomena. Please consult with your physician if you have any questions.注意:虚拟示例和图表仅用于说明目的。 …

ASP.NET Core中使用GraphQL - 第七章 Mutation

ASP.NET Core中使用GraphQL - 目录 ASP.NET Core中使用GraphQL - 第一章 Hello WorldASP.NET Core中使用GraphQL - 第二章 中间件ASP.NET Core中使用GraphQL - 第三章 依赖注入ASP.NET Core中使用GraphQL - 第四章 GrahpiQLASP.NET Core中使用GraphQL - 第五章 字段, 参数, 变量…