透視Matplotlib核心功能和工具包 - Seaborn工具包
關聯知識
Seaborn是基於Matplotlib構建的功能強大的視覺化工具。 它使多變數探索性資料分析更加容易和直觀,並且增加了一些新型別的圖,並且其背景樣式和顏色圖更加令人愉悅。 它具有許多內建的統計功能,使其成為統計資料分析的首選工具。 它還具有非常詳細的線上文件,您可以在以下位置找到https://seaborn.pydata.org/index.html。
我們將使用兩個資料集來演示大多數海洋特徵。 其中一個資料集“葡萄酒質量”,另一個是來自虛擬小吃店的小吃銷售資料集。
關係圖
小吃銷售資料集
該資料集(在程式碼庫中提供)包含有關給定日期,星期幾,是否為週末以及當天是否促銷的各種商品的銷售資訊。 我們擁有三年的資料:2015年,2016年和2017年。資料集的前五行如下所示:
圖略
然後,我們將新增兩個派生變數以幫助繪製所需的圖形:month(1到12)和Quarter(1/4)。 新增這些變數後,前五行如下所示:
圖略
以下程式碼塊讀取Excel檔案並新增其他變數:
import pandas as pd
import numpy as np
snacks_sales = pd.read_csv('Snacks_Data.csv')
snacks_sales['Month'] = pd.DatetimeIndex(snacks_sales['Date']).month
Quarter_Mapping = {1:1, 2:1, 3:1, 4:2, 5:2, 6:2, 7:3, 8:3, 9:3, 10:4,
11:4, 12:4}
snacks_sales['Quarter'] = snacks_sales['Month'].map(Quarter_Mapping)
葡萄酒質量資料集
該資料集具有11個影響葡萄酒質量的屬性。 質量等級從3到8不等,然後我們將3和4對映到Low,將5和6對映到Med,將7和8對映到high以建立一個新變數:質量。
資料集的前五行如下所示:
圖略
我們還將為葡萄酒質量資料集計算相關矩陣,我們將在一些圖中使用該矩陣。
以下是用於讀取其他變數並將其新增到Wine Quality資料集的程式碼塊:
import pandas as pd
# Read the data from a csv file into pandas data frame
wine_quality = pd.read_csv('winequality.csv', delimiter=';')
# Map numeric Quality codes to 'Low', 'Med' and 'High' qualitative
ratings
quality_map = {3:'Low', 4: 'Low', 5:'Med', 6:'Med', 7:'High', 8:'High'}
wine_quality['Quality'] = wine_quality['quality'].map(quality_map)
# compute correlation matrix
corr = wine_quality.corr()
# Display the first 5 records of wine_quality dataset, and unique
values of quality variable
wine_quality.head()
set(wine_quality.quality)
變數
除了將它們的關係繪製在二維圖中的兩個變數之外,seaborn還可以繪製三個附加變數對兩個主要變數之間的關係的影響圖。 這三個變數稱為語義變數。 它們被稱為色調,大小和樣式,它們充當給定繪圖功能的引數。
對於每個唯一的色調值,將有一個關係圖。 同樣,對於樣式的每個唯一值,都會有一個關係圖。 如果色調變數中有兩個唯一值(例如,是和否),樣式變數中有兩個唯一值(例如,s和D標記),則將有2 * 2 = 4個關係圖( 是&s,是&D,否&s,否&D組合)。 各種色調值以不同的顏色繪製,各種樣式值以不同的線或標記樣式繪製。
同樣,大小變數會影響兩個主要變數的繪製點的大小。 與Matplotlib散佈函式不同,此處,大小可變範圍分為多個容器,並將點分配給這些容器。 在Matplotlib散點函式中,每個點都分別對映為大小可變的不同值。
除了這三個語義變數外,seaborn還允許在row和col中新增另外兩個變數,其中針對row / col變數的每個唯一值,將有一個圖(軸),並將其佈置在row / col中。 這些行和列變數稱為構面變數,因為它們使我們能夠了解其他構面對所繪製的兩個主要變數的影響。
這些附加變數可以對映到要分析資料的各個維度,或者要分析兩個變數之間的關係。 在典型的銷售分析場景中,兩個主要變數可以是銷售額(單位或美元)或時間(天,月或季度),維度可以是業務單位,產品線,地區。
關係繪圖
關係圖描述了兩個連續變數之間的關係。 seaborn中有一個常見的API,relplot(),用於兩種型別的圖:線圖和散點圖。 但是,這兩種型別中的每一種都有單獨的函式:lineplot()和scatterplot()。 我們可以使用帶有引數的relplot()來繪製折線圖或散點圖,也可以直接使用lineplot()和scatterplot()函式。
一對一和一對多關係的線圖
線上圖中,觀測值連線到可以自定義樣式的線。 x和y變數之間的關係可以是一對一的,有時也可以是一對多的。 在我們的零食銷售資料集中,如果我們根據日期或期間繪製每個商品的銷售量,則這是一對一的關係,因為每對日期/期間和銷售量只有一個觀察值。 但是,如果我們按月銷售,則每個月有30個觀察值(銷售記錄),這是一對多的關係。
Seaborn提供了多種選擇來繪製這兩種型別的關係。
匯入所需包:
import matplotlib.pyplot as plt
import seaborn as sns
步驟細節:
- 設定背景樣式:
sns.set(style='darkgrid')
- 用圖的標題在period和smoothies銷售之間繪製折線圖:
sns.relplot(x='Period', y='Smoothies',
data=snacks_sales.query('Period < 300'), kind='line')
plt.title('line plot', size=20, color='g')
- 繪製period和smoothies銷售之間的折線圖,以星期幾為色調:
day_order = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday',
'Saturday', 'Sunday']
sns.relplot(x='Period', y='Smoothies', hue='daywk',
hue_order=day_order,
data=snacks_sales.query('Period < 300'), kind='line')
plt.title('line plot with hue=daywk', size=20, color='g')
- 以促銷為色調在period和smoothies銷售之間繪製折線圖:
sns.relplot(x='Period', y='Smoothies', hue='Promotion', hue_order=
['Yes', 'No'],
data=snacks_sales.query('Period < 300'), kind='line')
plt.title('line plot with hue=Promotion', size=20, color='g')
- 在“period”和“smoothies”銷售之間繪製折線圖,其中“促銷”為色調,“週末”為樣式:
sns.relplot(x='Period', y='Smoothies', hue='Promotion', hue_order=
['Yes', 'No'], style='weekend',
style_order=['Y', 'N'], kind='line',
data=snacks_sales.query('Period < 300'))
plt.title('line plot with hue and style', size=20, color='g')
分解程式碼
相關文章
- 透視Matplotlib核心功能和工具包 - Cartopy工具包
- 透視Matplotlib核心功能和工具包 - GUI中嵌入圖GUI
- 透視Matplotlib核心功能和工具包 - 高階特徵繪製特徵
- 論文結果圖:matplotlib和seaborn實現
- 【Buildroot】工具包使用UI
- 好用的工具包
- 用Junit工具包和Debug功能進行Java除錯與優化Java除錯優化
- 介紹一個功能豐富的 Java 工具包Java
- DriverStudio工具包介紹
- 從靜態到動態化,Python資料視覺化中的Matplotlib和SeabornPython視覺化
- percona-toolkit工具包的安裝和使用
- Quanto: PyTorch 量化工具包PyTorch
- iproute2工具包的使用
- 淺談WPF之MVVM工具包MVVM
- 安裝工具包太慢就用映象
- 後端工具包(個人版)後端
- 「葡萄城公開課」WijmoJS 前端開發工具包-新功能詳解JS前端
- Linux 效能最佳化工具包 sysstatLinux
- MES工具包與現成的MES
- 【軟體篇:suy網路工具包】
- IOS15的Figma介面工具包iOS
- 微軟Azure區塊鏈開發工具包三大功能詳解微軟區塊鏈
- 8 個流行的 Python 視覺化工具包,你喜歡哪個?Python視覺化
- LabVIEW AI視覺工具包(非NI Vision)下載與安裝教程ViewAI視覺
- Percona-Tookit工具包之pt-mext
- Percona-Tookit工具包之pt-pmp
- Percona-Tookit工具包之pt-ioprofile
- Percona-Toolkit工具包之pt-archiverHive
- 資料集與工具包kitti_nuscen
- Java讀取properties配置檔案工具包Java
- Duc:一個能夠視覺化洞察硬碟使用情況的工具包視覺化硬碟
- WIN10下ADB工具包安裝的教程和總結 --201809Win10
- Percona-Tookit工具包之pt-slave-find
- Percona-Tookit工具包之pt-table-usage
- Percona-Tookit工具包之pt-visual-explainAI
- Percona-Tookit工具包之pt-query-digest
- Percona-Tookit工具包之pt-table-checksum
- Percona-Tookit工具包之pt-mysql-summaryMySql