使用Python代碼實現數據可視化的方法詳解!

點擊上方關注,All in AI中國

本文概述了少量廣泛使用的數據可視化,幷包含函數形式的代碼,以使用Matplotlib在Python中實現每個代碼。

數據可視化是數據科學家工作的重要組成部分。在項目的早期階段,您通常會進行探索性數據分析(EDA)以獲得對數據的一些見解。創建可視化確實有助於使事情更清晰、更容易理解,尤其是對於更大、更高維度的數據集。在項目即將結束時,能夠以清晰、簡潔和引人注目的方式呈現您的最終結果非常重要,以便您的受眾(通常是非技術客戶)能夠理解。

Matplotlib是一個流行的Python庫,可用於輕鬆創建數據可視化。但是,每次執行新項目時,設置數據、參數、數字和繪圖都會變得相當混亂和乏味。在這篇博文中,我們將看看6個數據可視化,並使用Python的Matplotlib為它們編寫一些快速簡便的函數。與此同時,這是一個很好的圖表,可以為工作選擇正確的可視化!

使用Python代碼實現數據可視化的方法詳解!

散點圖

散點圖非常適合顯示兩個變量之間的關係,因為您可以直接查看數據的原始分佈。您還可以通過對組進行顏色編碼來簡單地查看不同數據組的這種關係,如下圖所示。想要可視化三個變量之間的關係?沒問題!只需使用其他參數(如磅值)來編碼第三個變量,我們可以在下面的第二個圖中看到。

使用Python代碼實現數據可視化的方法詳解!

使用Python代碼實現數據可視化的方法詳解!

我們首先使用別名“plt”導入Matplotlib的pyplot。為了創建一個新的情節圖,我們調用plt.subplots()。我們將x軸和y軸數據傳遞給函數,然後將它們傳遞給ax.scatter()以繪製散點圖。我們還可以設置點大小、點顏色和透明度。您甚至可以將y軸設置為具有對數刻度,然後專門為圖形設置標題和軸標籤。這是一個易於使用的功能,可以端到端地創建散點圖!

使用Python代碼實現數據可視化的方法詳解!

折線圖

當您可以清楚地看到一個變量與另一個變量差異很大,即它們具有高協方差時,最好使用折線圖。讓我們看一下下圖來說明。我們可以清楚地看到,所有專業的百分比都隨時間變化很大。使用散點圖繪製這些圖形會非常混亂,這使得很難真正理解看到發生了什麼。折線圖非常適合這種情況,因為它們基本上可以快速總結兩個變量的協方差(百分比和時間)。同樣,我們也可以通過顏色編碼使用分組。

使用Python代碼實現數據可視化的方法詳解!

這是線圖的代碼。它與上面的散點非常相似。只是變量的一些微小變化。

使用Python代碼實現數據可視化的方法詳解!

直方圖

直方圖可用於查看(或實際發現)數據點的分佈。查看下面的直方圖,我們繪製頻率與IQ直方圖,可以清楚地看到中心的濃度和中位數。我們還可以看到它遵循高斯分佈,使用條(而不是散點)確實可以清楚地看到每個箱的頻率之間的相對差異。使用分檔(離散化)確實有助於我們看到“更大的圖像”,就好像我們使用所有數據點而沒有離散分檔一樣,可視化中可能存在很多噪聲,這使得很難看到真正發生了什麼。

使用Python代碼實現數據可視化的方法詳解!

Matplotlib中直方圖的代碼如下所示,有兩個參數需要注意。首先,n_bins參數控制我們想要的直方圖的離散容器。它會給我們更好的信息,但也可能會引入噪音,讓我們遠離大局;另一方面,較少的話給我們提供了更多的“鳥瞰圖”,而且沒有更精細的細節,來能瞭解正在發生的事情。其次,累積參數是一個布爾值,它允許我們選擇直方圖是否累積,這基本上是選擇概率密度函數(PDF)或累積密度函數(CDF)。

使用Python代碼實現數據可視化的方法詳解!

想象一下,我們想要比較數據中兩個變量的分佈。有人可能會認為你必須製作兩個單獨的直方圖並將它們並排放置以進行比較。但是,實際上有更好的方法:我們可以用不同的透明度覆蓋直方圖。看看下圖,統一分佈設置透明度為0.5,以便我們可以看到它背後的內容。這允許直接查看同一圖上的兩個分佈。

使用Python代碼實現數據可視化的方法詳解!

還有一些東西需要在代碼中設置為重疊的直方圖。首先,我們設置水平範圍以適應兩個變量分佈。根據這個範圍和所需的箱數,我們實際上可以計算每個箱的寬度。最後,我們在同一個圖上繪製兩個直方圖,其中一個直方圖略微透明。

使用Python代碼實現數據可視化的方法詳解!

條形圖

當您嘗試可視化具有少量(可能<10個)類別的分類數據時,條形圖最有效。如果我們的類別太多,那麼圖中的條形圖將非常混亂並且難以理解。它們適用於分類數據,因為您可以根據條形圖的大小(即幅度)輕鬆查看類別之間的差異;類別也很容易劃分和顏色編碼。我們將看到3種不同類型的條形圖:常規、分組和堆疊。隨著我們的進展,請查看下圖中的代碼。

常規的條形圖在下面的第一個圖中。在barplot()函數中,x_data表示x軸上的代碼,y_data表示y軸上的條形高度。誤差條是以每個條形為中心的額外線條,可以繪製以顯示標準偏差。

分組條形圖允許我們比較多個分類變量。注意下面的第二個條形圖。我們比較的第一個變量是分數如何按組(G1,G2,......等組)變化。我們還將性別本身與顏色代碼進行比較。看一下代碼,y_data_list變量現在實際上是一個列表列表,其中每個子列表代表一個不同的組。然後我們遍歷每個組,對於每個組,我們為x軸上的每個刻度繪製條形圖;每組也有顏色編碼。

分組條形圖允許我們比較多個分類變量。看看下面第二個條形圖。我們比較的第一個變量是分數如何隨組變化(組G1,組G2,組……)等等)。我們也在比較性別本身和顏色代碼,看一下代碼,y_data_list變量現在實際上是列表的部分,其中每個子列表代表一個不同的組。然後我們遍歷每個組,對於每一組,我們為x軸上的每個刻度繪製條形圖;每組也有顏色編碼。

使用Python代碼實現數據可視化的方法詳解!

使用Python代碼實現數據可視化的方法詳解!

使用Python代碼實現數據可視化的方法詳解!

使用Python代碼實現數據可視化的方法詳解!

堆疊的條形圖非常適合可視化不同變量的分類構成。在下面的堆積條形圖中,我們將比較日常的服務器負載。使用彩色編碼堆棧,我們可以輕鬆查看和了解每天哪些服務器工作最多,以及負載在所有日期與其他服務器的比較情況。此代碼遵循與分組條形圖相同的樣式。我們遍歷每個組,除了這次我們在舊組之上而不是在它們旁邊繪製新條。

箱型圖

我們之前查看過直方圖,這些直方圖非常適合可視化變量的分佈。但是如果我們需要更多信息呢?也許我們想要更清晰地看待標準偏差?也許中位數與均值有很大不同,因此我們有很多異常值?如果存在這樣的偏差並且許多值集中在一邊怎麼辦?

這就是箱形圖所在的位置。箱形圖給出了上述所有信息。實線框的底部和頂部始終是第一和第三四分位數(即數據的25%和75%),框內的帶始終是第二個四分位數(中位數)。“鬍鬚”(即帶有條形末端的虛線)從盒子中伸出,以顯示數據的範圍。

由於為每個組/變量繪製了框圖,因此很容易設置。 x_data是組/變量的列表。 Matplotlib函數boxplot()為y_data的每一列或序列y_data中的每個向量創建一個盒子圖;因此,x_data中的每個值對應於y_data中的列/向量。我們所要設定的只是情節的美學。

使用Python代碼實現數據可視化的方法詳解!

使用Python代碼實現數據可視化的方法詳解!

結論

使用Matplotlib可以實現5種快速簡便的數據可視化。 將事物抽象為函數總是使代碼更易於閱讀和使用!

使用Python代碼實現數據可視化的方法詳解!


分享到:


相關文章: