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.pswp.cn/news/388072.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388072.shtml
英文地址,請注明出處:http://en.pswp.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設計模式(七):組合模式

組合,將對象組合成樹狀結構,來表示業務邏輯上的[部分-整體]層次,這種組合使單個對象和組合對象的使用方法一樣。 如描述一家公司的層次結構,那么我們用辦公室來表示節點,則總經理辦公司是根節點,下面分別由…

Django框架是什麼?

Django在新一代的Web框架中非常出色,為什么這么說呢?為回答該問題,讓我們考慮一下不使用框架設計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中幾個…

c#中ReadLine,Read,ReadKey的區別

Console.Read()、Console.ReadLine() 相同點: 1.兩者都是用于輸入的函數。 不同點: 1. Read只能讀取一個字符,ReadLine可以讀取一個字符串 如 Read讀取A和AASDGU的返回值都是一樣的 都為A的ASCII值,對于后續的ASDGU不理會。 而Rea…

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…

【左偏樹】【P3261】 [JLOI2015]城池攻占

Description 小銘銘最近獲得了一副新的桌游&#xff0c;游戲中需要用 m 個騎士攻占 n 個城池。這 n 個城池用 1 到 n 的整數表示。除 1 號城池外&#xff0c;城池 i 會受到另一座城池 fi 的管轄&#xff0c;其中 fi <i。也就是說&#xff0c;所有城池構成了一棵有根樹。這 m…

【原創】數據庫中為什么不推薦使用外鍵約束

引言 其實這個話題是老生常談&#xff0c;很多人在工作中確實也不會使用外鍵。包括在阿里的JAVA規范中也有下面這一條 【強制】不得使用外鍵與級聯&#xff0c;一切外鍵概念必須在應用層解決。 但是呢&#xff0c;詢問他們原因&#xff0c;大多是這么回答的 每次做DELETE 或者…

初識Activiti

http://wenku.baidu.com/view/bb7364ad4693daef5ff73d32.html 1. 初識Activiti 1.1. 工作流與工作流引擎 工作流&#xff08;workflow&#xff09;就是工作流程的計算模型&#xff0c;即將工作流程中的工作如何前后組織在一起的邏輯和規則在計算機中以恰當的模型進行表示并對其…

開源軟件 安全風險_3開源安全風險及其解決方法

開源軟件 安全風險Open source software is very popular and makes up a significant portion of business applications. According to Synopsys, 99% of commercial databases contain at least one open source component, and nearly 75% of these codebases contain open…

React-Router 源碼分析1

1、單頁面應用的路由基本原理 demo1 router1.html 復制代碼以 hash 形式為例。 1、init 監聽瀏覽器 url hash 更新事件。 2、route 存儲路由更新時的回調到回調數組routes中&#xff0c;回調函數將負責對頁面的更新。 3、refresh 執行當前url對應的回調函數&#xff0c;更新頁面…

linux安裝日志切割程序

linux安裝日志切割程序 安裝 gcc&#xff08;1&#xff09; yum insatll gcc &#xff08;2&#xff09;# cd cronolog-1.6.2 4、運行安裝 # ./configure# make# make install 5、查看cronolog安裝后所在目錄&#xff08;驗證安裝是否成功&#xff09; # which cronolog 一般情…