Vitu課堂:數據可視化「從編程小白到畫圖大拿」:5.數據分佈

在本篇中我們來學習一下如何看數據的分佈,其中直方圖和密度圖是比較常用的

設置你的Notebook

我們還是老樣子在開頭先設置一下

<code>import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
print("設置完成")/<code>

選擇數據集

這次我們會使用Iris數據集,Iris是常用的分類實驗數據集,由Fisher, 1936收集整理,Iris也稱鳶尾花卉數據集,是一類多重變量分析的數據集。數據集包含150個數據樣本,分為3類,每類50個數據,每個數據包含4個屬性。可通過花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預測鳶尾花卉屬於(Setosa,Versicolour,Virginica)三個種類中的哪一類。

iris以鳶尾花的特徵作為數據來源,常用在分類操作中。該數據集由3種不同類型的鳶尾花的各50個樣本數據構成。其中的一個種類與另外兩個種類是線性可分離的,後兩個種類是非線性可分離的。
該數據集包含了4個屬性:

  • Sepal.Length(花萼長度),單位是cm;
  • Sepal.Width(花萼寬度),單位是cm;
  • Petal.Length(花瓣長度),單位是cm;
  • Petal.Width(花瓣寬度),單位是cm;

種類:Iris Setosa(山鳶尾)、Iris Versicolour(雜色鳶尾),以及Iris Virginica(維吉尼亞鳶尾)。

下載並上傳

點擊這裡 下載 數據集

我們再把csv文件上傳到vitu的數據集空間裡

Vitu課堂:數據可視化「從編程小白到畫圖大拿」:5.數據分佈

接下來我們用pandas來加載這個文件:

<code># Path of the file to read
iris_filepath = "iris.csv"

# Read the file into a variable iris_data
iris_data = pd.read_csv(iris_filepath, index_col="Id")

# Print the first 5 rows of the data
iris_data.head()/<code>

直方圖

我們來創建一個直方圖看一下花瓣寬度的分佈,使用到sns.distplot這個函數

<code># Histogram 
sns.distplot(a=iris_data['Petal Length (cm)'], kde=False)/<code>
Vitu課堂:數據可視化「從編程小白到畫圖大拿」:5.數據分佈

密度圖

下一個我們要探索的是密度圖kernel density estimate(KDE)。如果你不太熟悉KDE,你可以大致認為它是一個平滑過的直方圖

我們用sns.kdeplot命令來畫

<code># KDE plot 
sns.kdeplot(data=iris_data['Petal Length (cm)'], shade=True)/<code>
Vitu課堂:數據可視化「從編程小白到畫圖大拿」:5.數據分佈

二維密度圖

我們還可以用sns.jointplot來畫二維的密度圖

<code># 2D KDE plot
sns.jointplot(x=iris_data['Petal Length (cm)'], y=iris_data['Sepal Width (cm)'], kind="kde")/<code>
Vitu課堂:數據可視化「從編程小白到畫圖大拿」:5.數據分佈


Vitu課堂:數據可視化「從編程小白到畫圖大拿」:5.數據分佈


分享到:


相關文章: