散點圖、箱線圖、核密度函數……數據分析必備的9種可視化圖表

2020-12-06 讀芯術

全文共2286字,預計學習時長9分鐘

圖源:dayliscrawl

作為數據分析對外輸出的關鍵環節,可視化技術可是數據科學家的必備技能之一。各種各樣的圖標花樣繁多,可別被這些炫酷的「造型」嚇退了。

本文將介紹九種不同的可視化技術,可以用來分析任何數據集,並且大多數都只需要少輸入一行代碼。就兩個字,好用!

加載數據集和快速瀏覽數據

為簡單起見,使用可從scikit-learn庫加載的Iris數據集,輸入以下代碼:

from sklearn.datasets importload_iris

import pandas as pddata = load_iris()

df = pd.DataFrame(data['data'], columns=data['feature_names'])

df['species'] = data['target']

df.head()

可以看到,我們有一個只有5列的數據集。使用數據框上的info()函數對其進行快速分析: df.info()

如圖可見,只有150個條目,在任何一列中都沒有丟失值。

此外,還可以看到前四列有浮點值,而最後一列只允許出現整數。事實上,根據數據集描述,我們知道「物種」列只取三個值,每個值代表一種花。

要確認這一點,可以對該列使用unique()函數:

df.species.unique()

array([0, 1, 2])

確實,「物種」列只取三個值:0、1和2。

了解了數據集的基本信息之後就可以進行可視化了。請注意,如果列中缺少一些值,應該對其進行刪除或填充。我們稍後將討論的一些技術不允許出現丟失值。

線形圖

從一個簡單的線狀圖開始可視化。選中整個數據框。

df.plot()

如圖可見,它已經根據索引值(x軸)繪製了不同顏色的所有列值。這是不為函數提供x軸參數時的默認行為。

現在看來這個圖不是很有用。如果x軸是一個時間序列,那麼線圖是一個很好的選擇。我們可能會在數據中看到一些時間上的趨勢。

在本例中,只能看到數據是按「物種」列排序的(圖中紫色的步驟),並且其他列的移動平均值遵循該模式(花瓣長度,特別是紅色標記的花瓣長度)。

散點圖

這是一種將兩個連續變量之間的關係可視化的完美圖表。通過散點圖來分析萼片長度和萼片寬度的關係。

df.plot.scatter(x='sepal length(cm)', y='sepal width (cm)')

為了生成此圖,需要通過其列名來指定圖的x軸和y軸。這個圖表顯示這兩個變量之間沒有很強的相關性。讓我們來檢查另一對萼片長度和花瓣長度:

df.plot.scatter(x='sepal length(cm)', y='petal length (cm)')

在這種情況下,可以看到當萼片長度增加時,花瓣長度也會增加(當萼片長度大於6釐米時,增加幅度更大)。

餅狀圖

可以使用餅狀圖來可視化目標變量的類計數。我們將在這裡對正在處理的Iris數據集進行處理。同樣需要一些輔助函數,這次使用的是groupby和count。

df.groupby('species').count().plot.pie(y='sepallength (cm)')

這一類目具有完美的比例,因為我們的數據集包含每個類的50個條目。

注意,必須在這裡使用y參數並將其設置為某個列名。這裡使用了萼片長度列,但它可以是任何列,因為所有列的計數都是相同的。

面積圖

還可以為這個數據集創建一個面積圖。圖中包括所有有釐米的維度,但是要刪除「物種」列,因為這些在本例中沒有任何意義。

columns = ['sepal length (cm)','petal length (cm)', 'petal width (cm)', 'sepal width (cm)']

df[columns].plot.area()

這張圖上的測量值是一個接一個的。這個圖表可以讓你直觀地檢查包含在圖表中的每個度量之間的比率。所有的數值向之後的條目都有一個增長的趨勢。

條形圖

當顯示條目的平均或計數時,這是一個很好的圖表類型。可以用它來計算數據集中每個類型的每個維度的平均值。為此,需要使用groupby和mean函數。

df.groupby('species').mean().plot.bar()

上圖非常直觀,可以看到不同類型和不同柱的平均測量值存在差異。

箱線圖

箱線圖也是應該用於數值變量的可視化技術。它可以為所有的測量列繪製箱線圖(不包括物種列,因為對於這個分類變量來說,箱線圖沒有意義)。

columns = ['sepal length (cm)', 'petallength (cm)', 'petal width (cm)', 'sepal width (cm)']

df[columns].plot.box()

plt.xticks(rotation='vertical')

如圖所示,所有的箱線圖都畫在同一張圖上。由於沒有太多的變量來表示,所以這對我們來說是很好的。注意,必須旋轉x標籤,不這樣做標籤的名稱會相互重疊。

柱狀圖

柱狀圖對於任何連續變量來說都是一個完美的可視化技術。讓我們從簡單的hist函數開始。

import matplotlib.pyplot as plt

df.hist()

plt.tight_layout()

可以看到,這會為數據集中的每個數值變量生成一個柱狀圖。要製作圖表,就不得不添加一些額外的代碼行。這是我調用tight_layout函數的第一個導入行和最後一行。如果不添加這個,標籤和子圖名可能會重疊並且不可見。

核密度函數

與柱狀圖類似,可以使用核密度函數:

df.plot.kde(subplots=True,figsize=(5,9))

它給出了與柱狀圖相似的結果。必須在這裡指定一個圖形大小,否則圖形會在垂直方向上被壓得太厲害。

此外,還將subplots參數設置為True,因為在默認情況下,所有的列都會顯示在同一個圖表上。

散點矩陣圖

這是我最喜歡的數據分析的可視化技術之一,因為它可以對數據集中的所有數值及其相關性進行快速分析。

默認情況下,它將為數據幀中的所有數字變量對的散點圖和所有數字變量的柱狀圖。

from pandas.plotting importscatter_matrix

scatter_matrix(df, figsize=(10, 10))

你將得到這個繪製精美的平面圖,只用一行代碼就能告訴你很多關於數據集的信息。在這組數據中,只需掃一眼就能發現這組數據中的一些變量之間的相關性。唯一需要設置的附加參數是數字尺寸,這是因為圖中的地塊非常小,默認的圖表尺寸很小。

可視化技術是你在數據分析的修煉道路上必不可少的一關,試試將這些知識應用到你所選擇的數據集。把數據玩出花,其實很簡單。

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 數據可視化之旅(三):數據圖表的選擇(中)
    當需要分析各個系列,隨時間的變化趨勢時,此時使用「重疊對比型面積圖」比較合適;當既需要分析整體隨時間的變化趨勢,又要了解整體的各構成項隨時間的變化趨勢時,使用「堆砌對比型面積圖」比較合適。4.氣泡圖氣泡圖,和散點圖的區別是,氣泡圖一般是用於三維數據的可視化,而散點圖是用於二維數據的可視化。
  • 數據可視化·圖表篇——散點圖
    大家好,上周介紹完餅圖之後,您有沒有親自動手嘗試一下呢?今天小數要帶大家熟悉的是散點圖,本文圖表生成所用工具仍然是大眾熟知的Excel。說到散點圖,它既能用來呈現數據點的分布,表現兩個元素的相關性,也能像折線圖一樣表示時間推移下的發展趨勢。可以說是最靈活多變的圖表類型。大數據時代,人們更關注數據之間的相關關係而非因果關係。
  • 數據可視化,職場數據分析都需要哪些常用的圖表?
    體現專業化:恰當、得體的圖表傳遞著製圖者專業、敬業、值得信賴的職業形象。專業的圖表會極大地提升個人的職場競爭力,為個人發展加分,為成功創造機會。  圖表是對數據的可視化展示,精美的圖表可以方便用戶解讀數字之間的關係,相比起枯燥的表格來講,有助於發現容易被忽視的趨勢和規律。通過對趨勢和規律的分析,可以幫助用戶做出正確的判斷。
  • 這5種數據可視化方式是數據科學家標配!
    Matplotlib是一個流行的Python庫,可以用來很容易地創建數據可視化。但是,每次執行新項目時,設置數據、參數、圖形和繪圖都會變得非常繁瑣。在這篇博客文章中,我們將著眼於5個數據可視化,並使用Python的Matplotlib為他們編寫一些快速簡單的功能。與此同時,這裡有一個很棒的圖表,用於為工作選擇正確的可視化圖表!
  • 用數據說話,R語言有哪七種可視化應用?
    如何選擇正確的圖表類型四種可選擇的基本類型:1、 比較類圖表2、 組成類圖表3、 分布類圖表4、 關係類圖表為了選擇最適合分析手中數據的圖表類型,首先考慮以下幾個問題:單個圖表裡,需要幾個變量?單個變量,需要用多少數據點來描述?數據是隨時間的變量,還是離散的,以單體或組的形式?
  • 數據可視化之R語言
    分類數據的可視化使用條形圖、點圖、柱形圖、脊柱圖、馬賽克圖、餅圖及四折圖連續數據的可視化使用箱線圖、直方圖、散點圖及其變種、帕累託圖==============================================一、分類數據的可視化
  • Python可視化很簡單,一文教你繪製餅圖、極線圖和氣泡圖
    matplotlib庫作為Python數據化可視化的最經典和最常用庫,掌握了它就相當於學會了Python的數據化可視化,上次呢,已經和大家聊了關於柱狀圖、條形圖和直方圖相關的東東,相信大家已經掌握了哈,那今天呢,咱們再繼續聊哦,一起聊聊關於Python如何繪製餅圖、極線圖和氣泡圖吧!好啦,廢話少說,咱們就開始吧!
  • 一文學會用Python繪製經典的棉棒圖、箱線圖和誤差棒圖
    這幾天一直在和大家聊Python數據可視化相關的東東,其中呢,介紹最多的當然是matplotlib庫中的各種繪製函數啦,上次已經和大家談論了關於Python中如何繪製氣泡圖等漂亮圖表的方式,今天呢,咱們繼續聊哦,今天呢,咱們就來聊聊如何繪製經典的棉棒圖、箱線圖和誤差棒圖
  • matplotlib的Python數據可視化和探索——入門指南
    Matplotlib提供了一種簡單而全面的可視化方法來介紹我們的發現。我們將在本教程中很快看到,有很多可視化可供選擇,以展示我們的結果。從直方圖到散點圖,matplotlib設置了一系列顏色,主題,調色板和其他選項以自定義和個性化我們的圖。無論您是在為機器學習項目執行數據探索,還是只是想創建令人眼花and亂的圖表,matplotlib都非常有用。
  • 技能分享|Python數據可視化利器:Seaborn使用方法(一)
    或者,也可以使用conda進行安裝02了解seaborn API基本形式seaborn畫圖函數,主要針對pandas的DataFrame或numpy數據,有以下幾種主要形式:sns.圖名(x='X軸 列名', y='Y軸 列名', data=原始數據df對象)sns.圖名(x='X軸 列名', y='Y軸 列名',
  • 數據可視化最有價值的50個圖表 | 網際網路數據資訊網-199IT | 中文...
    在數據分析和可視化中最有用的 50 個 Matplotlib 圖表。 這些圖表列表允許您使用 python 的 matplotlib 和 seaborn 庫選擇要顯示的可視化對象。這些圖表根據可視化目標的7個不同情景進行分組。 例如,如果要想像兩個變量之間的關係,請查看「關聯」部分下的圖表。 或者,如果您想要顯示值如何隨時間變化,請查看「變化」部分,依此類推。
  • 數據可視化當中的圖表組合:比例面積圖
    編輯導讀:優秀的數據可視化依賴優異的設計,並非僅僅選擇正確的圖表模板那麼簡單,數據可視化可以幫助用戶更好地理解數據、運用數據。本文作者從自身經驗出發,結合具體案例分享了比例面積圖的不同組合形式,供大家一同參考學習。
  • 用Seaborn繪製圖表
    Seaborn是一個功能強大的Python庫,用於增強數據可視化。它為Matplotlib提供了大量高級接口。Seaborn可以很好地處理數據幀,而Matplotlib則不行,它可以讓你以更簡單的方式繪製引人注目的圖表。
  • Excel數據分析系列(五):Excel 數據可視化
    作者 | CDA數據分析師Excel圖表構成元素認識Excel圖表的基本構成元素,對我們選擇和繪製可視化圖形是非常重要的。很多人都忽視了這一點,以至於製作圖表的效率很低,不知道如何修改圖表元素。點擊圖表右上角旁邊的加號可以添加圖表標題元素,雙擊標題框可對其進行設置。數據系列和數據點數據系列是由數據點構成的,每個數據點對應於工作表中的某個單元格內的數據。在此例中,保護兩個數據系列,「2018年」數據系列和「2019年」數據系列。單擊某一個系列中的某一個數據點可選中整個系列,然後整個數據系列進行格式設置。
  • 精心整理4大類12個圖表類型,輕鬆搞定數據可視化
    數據報表中常用圖表:柱形圖和條形圖;折線圖統計與分析常用圖表:直方圖;散點圖產品經理常用圖表:桑基圖;熱力圖;同期群圖經常被濫用的圖表:餅圖;雷達圖;面積圖;氣泡圖數據報表中常用圖表1、柱形圖和條形圖在呈現非連續性數據指標時,常常使用柱形圖和條形圖。
  • 利用ggforce繪製數據的分布規律
    在實際數據分析時,往往需要多個函數圖形組合在一起,才能完整的描述一組數據的整體特徵。本文主要介紹ggforce程序包的geom_sina函數,結合箱線圖和小提琴圖,以反映數據的分布規律及其特徵。1. 產生數據集以下代碼產生了一個df數據集,包含三個樣本數據。
  • Matplotlib數據可視化:餅圖與箱線圖
    labels=labels, # 字符標籤 labeldistance=0.4, # 字符標籤到中心點的距離 autopct='%1.2f%%', # 顯示數值標籤 pctdistance=1.2, #數值標籤到中心點的距離 rotatelabels
  • Python可視化Seaborn庫詳解——繪圖方法
    函數一樣,均是屬於一般型方法,它通過kind參數可分別作折線圖和散點圖,而且也可通過col和row參數進行分面。catplot該函數可以繪製八種分類圖,並可以進行分面。每種分類圖也有相應的函數,可以進行更細緻的參數設置,但均不能進行分面。
  • python數據分析常用圖大集合
    六、箱線圖箱線圖由五個數值點組成:最大值 (max)、最小值 (min)、中位數 (median) 和上下四分位數 (Q3, Q1)。可以幫我們分析出數據的差異性、離散程度和異常值等。Matplotlib# 生成0-1之間的10*4維度數據data=np.random.normal(size=(10,4)) lables = ['A','B','C','D']# 用Matplotlib畫箱線圖plt.boxplot(data,labels=lables)plt.show()Seaborn# 用Seaborn畫箱線圖df =
  • R語言 | R語言繪製抖動散點圖和蜂群圖
    這兩種類型的散點圖在文獻中都很常見,例如生物學研究中常使用它們展示基因定量表達的信息。除了R語言作圖外,本文還比較了二者各自的特點,並在最後簡單列舉了它們與其它類型的統計圖如箱線圖、提琴圖等的區別和聯繫,以及適用場合。 multcomp包的cholesterol數據集,來自某項臨床研究,記錄了50個患者接受降膽固醇藥物治療後的療效。