數據可視化是數據科學家工作的重要組成部分。在項目的早期階段,你通常會進行探索性數據分析(EDA)以獲取對數據的一些洞察。創建可視化確實有助于使事情更清晰易懂,特別是對于大型高維數據集。在你的項目結束時,能夠以清晰、簡潔和引人注目的方式展示你的最終結果非常重要,因為你的受眾往往是非技術性客戶,他們可以理解。 Matplotlib是一個流行的Python庫,可以用來很容易地創建數據可視化。但是,每次執行新項目時,設置數據、參數、圖形和繪圖都會變得非常繁瑣。在這篇博客文章中,我們將著眼于5個數據可視化,并使用Python的Matplotlib為他們編寫一些快速簡單的功能。與此同時,這里有一個很棒的圖表,用于為工作選擇正確的可視化圖表! 用于為給定情況選擇適當的數據可視化技術的圖表 散點圖 散點圖非常適合顯示兩個變量之間的關系,因為你可以直接看到數據的原始分布。你還可以通過對組進行顏色編碼來簡單地查看不同組數據的關系,如下圖所示。想要可視化三個變量之間的關系?沒問題!只需使用另一個參數(如點大小)就可以對第三個變量進行編碼,如下面的第二個圖所示。 散點圖與顏色分組 現在我們看一下代碼。我們首先用別名“plt”導入Matplotlib的pyplot。要創建一個新的情節圖,我們稱之為plt.subplots()。將x軸和y軸數據傳遞給函數,然后將這些數據傳遞給ax.scatter()以繪制散點圖。我們還可以設置點的大小,點顏色和alpha透明度。你甚至可以設置Y軸為對數刻度。標題和軸標簽然后專門為該圖設置。這是一個易于使用的函數,可以首尾相連創建散點圖! 線條圖 如果能清楚地看到一個變量與另一個變量差異很大,即它們具有高協方差,則最好使用線圖。讓我們看看下圖來說明。我們可以清楚地看到,所有專業的百分比隨時間變化很大。用散點圖繪制這些圖將會非常混亂,這使得很難真正理解并看到發生了什么。線圖非常適合這種情況,因為它們基本上給了我們兩個變量(百分比和時間)的協方差的快速總結。同樣,我們也可以使用顏色編碼進行分組。 示例線圖 這是線圖的代碼。這與上面的分散很相似。只有一些變量的微小變化。 直方圖 直方圖對查看(或真正發現)數據點的分布很有用。查看下面我們繪制頻率與IQ直方圖的直方圖。我們可以清楚地看到中心的集中度和中位數,也可以看到它遵循高斯分布。例如,使用條(而不是散點)可以清楚地顯示出每個箱的頻率之間的相對差異。使用分箱(離散化)確實有助于我們看到“更大的圖像”,就像我們使用所有沒有離散分箱的數據點一樣,可能會在可視化中產生大量噪音,使得很難看到到底發生了什么。 直方圖示例 下面顯示了Matplotlib中直方圖的代碼。有兩個參數需要注意。首先,n_bins參數控想象一下,我們想要比較數據中兩個變量的分布。有人可能會認為你必須制作兩個獨立的直方圖并將它們并排放在一起進行比較。但是,實際上有更好的方法:我們可以用不同的透明度覆蓋直方圖。看看下面的圖。統一分布被設置為具有0.5的透明度,以便我們可以看到它的后面是什么。這允許用戶直接查看同一圖上的兩個分布。 在疊加直方圖的代碼中需要設置幾件事情。首先,我們設置水平范圍以適應兩種可變分布。根據這個范圍和期望數量的箱子,我們實際上可以計算每個箱子的寬度。最后,我們在同一個圖上繪制兩個直方圖,其中一個直觀圖更透明。 當你嘗試對幾乎沒有(可能<> 條形圖 常規的條狀圖在下面的第一張圖中。在barplot()函數中,x_data表示x軸上的代號,y_data代表y軸上的條高。錯誤欄是在每個可以繪制的條上居中顯示標準偏差的額外行。 分組條形圖允許我們比較多個分類變量。看看下面的第二個條形圖。我們比較的第一個變量是分數如何隨組(組G1,G2,...等)而變化。我們還將性別本身與顏色代碼進行比較。看看代碼,y_data_list變量現在實際上是一個列表列表,其中每個子列表代表一個不同的組。然后,我們循環遍歷每個組,并為每個組繪制x軸上每個刻度的條形;每個組都是彩色編碼的。 堆疊的條形圖非常適合可視化不同變量的分類構成。在下面的堆積條形圖中,我們比較了日常的服務器負載。使用彩色編碼堆棧,我們可以輕松查看并了解哪臺服務器每天的工作效率最高,以及每天的負載如何,并與其他服務器進行比較。此代碼遵循與分組條形圖相同的樣式。我們循環遍歷每一個組,除了這次我們在舊的欄上畫新的,而不是在他們旁邊繪制。 常規條形圖 分組條形圖 堆積條形圖 箱型圖 我們之前查看了直方圖,這些直方圖非常適合可視化變量的分布。但是如果我們需要更多的信息呢?也許我們想要更清楚地看待標準偏差?也許中位數與平均值有很大差異,因此我們有很多異常值怎么辦?如果存在如此歪斜,并且許多值都集中在一方怎么辦? 這就是箱形圖出現的地方。箱形圖給我們提供了上述所有信息。實線框的底部和頂部總是第一和第三四分位數(即數據的25%和75%),并且框內的帶總是第二四分位數(中值)。箱須圖(即末端具有條紋的虛線)從框中延伸以顯示數據的范圍。 由于箱形圖是為每個組、變量都繪制了,因此很容易設置。 x_data是組/變量的列表。 Matplotlib函數boxplot()為y_data的每列或每個向量的序列y_data生成一個箱形圖;因此x_data中的每個值都對應于y_data中的列/向量。所有我們所要設定的是情節的美學。 箱形示例 結論 使用Matplotlib有5個快速簡單的數據可視化。將事物抽象成函數總是會讓你的代碼更易于閱讀和使用!我希望你喜歡這篇文章,并且學到了一些新的有用的東西。如果你有,點個贊,留下你的評論! |
|
來自: 慶亮trj21bcn0z > 《編程》