溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

發(fā)布時(shí)間:2021-12-18 17:29:28 來(lái)源:億速云 閱讀:126 作者:柒染 欄目:大數(shù)據(jù)

這篇文章給大家介紹用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

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

Matplotlib是一個(gè)流行的Python庫(kù),可用于輕松創(chuàng)建數(shù)據(jù)可視化。但是,每次執(zhí)行新項(xiàng)目時(shí),設(shè)置數(shù)據(jù)、參數(shù)、數(shù)字和繪圖都會(huì)變得相當(dāng)混亂和乏味。在這篇博文中,我們將看看6個(gè)數(shù)據(jù)可視化,并使用Python的Matplotlib為它們編寫(xiě)一些快速簡(jiǎn)便的函數(shù)。與此同時(shí),這是一個(gè)很好的圖表,可以為工作選擇正確的可視化!

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

散點(diǎn)圖

散點(diǎn)圖非常適合顯示兩個(gè)變量之間的關(guān)系,因?yàn)槟梢灾苯硬榭磾?shù)據(jù)的原始分布。您還可以通過(guò)對(duì)組進(jìn)行顏色編碼來(lái)簡(jiǎn)單地查看不同數(shù)據(jù)組的這種關(guān)系,如下圖所示。想要想象三個(gè)變量之間的關(guān)系?沒(méi)問(wèn)題!只需使用另一個(gè)參數(shù)(如點(diǎn)大小)來(lái)編碼第三個(gè)變量,我們可以在下面的第二個(gè)圖中看到。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

現(xiàn)在來(lái)看代碼。我們首先使用別名“plt”導(dǎo)入Matplotlib的pyplot。為了創(chuàng)建一個(gè)新的情節(jié)圖,我們調(diào)用plt.subplots()。將x軸和y軸數(shù)據(jù)傳遞給函數(shù),然后將它們傳遞給ax.scatter()以繪制散點(diǎn)圖。我們還可以設(shè)置磅值、點(diǎn)顏色和Alpha透明度。您甚至可以將y軸設(shè)置為對(duì)數(shù)刻度。然后專(zhuān)門(mén)為圖形設(shè)置標(biāo)題和軸標(biāo)簽。這很容易使用一個(gè)端到端創(chuàng)建散點(diǎn)圖的函數(shù)!

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

線形圖

當(dāng)您可以清楚地看到一個(gè)變量與另一個(gè)變量差異很大,即它們具有高協(xié)方差時(shí),最好使用線圖。我們來(lái)看看下圖來(lái)說(shuō)明,可以清楚地看到,所有專(zhuān)業(yè)的百分比隨時(shí)間變化很大。使用散點(diǎn)圖繪制這些圖形會(huì)非常混亂,這使得我們很難真正理解并看到發(fā)生了什么。線圖非常適合這種情況,因?yàn)樗鼈兓旧峡梢钥焖倏偨Y(jié)兩個(gè)變量的協(xié)方差(百分比和時(shí)間)。同樣,我們也可以通過(guò)顏色編碼進(jìn)行分組。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

這是線形圖的代碼。它與上面的散點(diǎn)非常相似。只有一些變量的微小變化。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

直方圖

直方圖可用于查看(或?qū)嶋H發(fā)現(xiàn))數(shù)據(jù)點(diǎn)的分布。查看下面的直方圖,我們繪制頻率與IQ直方圖。我們可以清楚地看到中心的濃度和中位數(shù)。我們還可以看到它遵循高斯分布。使用條(而不是散點(diǎn))確實(shí)可以清楚地看到每個(gè)箱的頻率之間的相對(duì)差異。使用分檔(離散化)確實(shí)有助于我們看到“更大的圖像”,而如果我們使用所有數(shù)據(jù)點(diǎn)而沒(méi)有離散分檔,可視化中可能會(huì)有很多噪聲,這使得很難看到真正發(fā)生了什么。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

Matplotlib中直方圖的代碼如下所示。有兩個(gè)參數(shù)需要注意。首先,n_bins參數(shù)控制我們的直方圖所需的離散區(qū)數(shù)。更多的bins會(huì)給我們更好的信息,但也可能會(huì)引入噪音;另一方面,較少的bins給我們提供了更多的“鳥(niǎo)瞰圖”,并且沒(méi)有更精細(xì)的細(xì)節(jié),更能了解正在發(fā)生的事情。其次,累積參數(shù)是一個(gè)布爾值,它允許我們選擇我們的直方圖是否累積。這基本上是選擇概率密度函數(shù)(PDF)或累積密度函數(shù)(CDF)。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

想象一下,我們想要比較數(shù)據(jù)中兩個(gè)變量的分布。有人可能會(huì)認(rèn)為你必須制作兩個(gè)單獨(dú)的直方圖并將它們并排放置以進(jìn)行比較。但是,實(shí)際上有更好的方法:我們可以用不同的透明度覆蓋直方圖??纯聪聢D,統(tǒng)一分布設(shè)置為透明度為0.5,以便我們可以看到它背后的內(nèi)容。這允許用戶(hù)直接在同一圖上查看兩個(gè)分布。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

在代碼中為疊加的直方圖設(shè)置了一些東西。首先,我們?cè)O(shè)置水平范圍以適應(yīng)兩個(gè)變量分布。根據(jù)這個(gè)范圍和所需的箱數(shù),我們實(shí)際上可以計(jì)算每個(gè)箱的寬度。最后,我們?cè)谕粋€(gè)圖上繪制兩個(gè)直方圖,其中一個(gè)直方圖略微透明。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

條形圖

當(dāng)您嘗試可視化具有少量(可能<10個(gè))類(lèi)別的分類(lèi)數(shù)據(jù)時(shí),條形圖最有效。如果我們的類(lèi)別太多,那么圖中的條形圖將非常混亂并且難以理解。它們適用于分類(lèi)數(shù)據(jù),因?yàn)槟梢愿鶕?jù)條形圖的大小(即幅度)輕松查看類(lèi)別之間的差異;類(lèi)別也很容易劃分顏色編碼。我們將看到3種不同類(lèi)型的條形圖:常規(guī)、分組和堆疊。隨著我們的進(jìn)展,請(qǐng)查看下圖中的代碼。

常規(guī)的條形圖在下面的第一個(gè)圖中。在barplot()函數(shù)中,x_data表示x軸上的代碼,y_data表示y軸上的條形高度。誤差條是以每個(gè)條形為中心的額外線條,可以繪制以顯示標(biāo)準(zhǔn)偏差。

分組條形圖允許我們比較多個(gè)分類(lèi)變量??纯聪旅娴牡诙€(gè)條形圖。我們比較的第一個(gè)變量是分?jǐn)?shù)如何按組(G1,G2,......等組)變化。我們還將性別本身與顏色代碼進(jìn)行比較??匆幌麓a,y_data_list變量現(xiàn)在實(shí)際上是一個(gè)列表,其中每個(gè)子列表代表一個(gè)不同的組。然后我們遍歷每個(gè)組,對(duì)于每個(gè)組,我們?cè)趚軸上繪制每個(gè)刻度線的條形圖;每組也有顏色編碼。

堆積條形圖非常適合可視化不同變量的分類(lèi)構(gòu)成。在下面的堆積條形圖中,我們將比較日常的服務(wù)器負(fù)載。通過(guò)顏色編碼堆棧,我們可以輕松查看和了解哪些服務(wù)器每天工作最多,以及負(fù)載如何與所有日期的其他服務(wù)器進(jìn)行比較。此代碼遵循與分組條形圖相同的樣式。我們遍歷每個(gè)組,除了這次我們?cè)谂f組之上而不是在它們旁邊繪制新條。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

直方圖

我們之前查看過(guò)直方圖,這些直方圖非常適合可視化變量的分布。但是如果我們需要更多信息呢?也許我們想要更清晰地看待標(biāo)準(zhǔn)偏差?也許中位數(shù)與均值有很大不同,因此我們有很多異常值?如果存在這樣的偏差并且許多值集中在一邊怎么辦?

這就是箱形圖出現(xiàn)的原因。箱形圖給出了上述所有信息。實(shí)線框的底部和頂部始終是第一和第三四分位數(shù)(即數(shù)據(jù)的25%和75%),框內(nèi)的頻帶始終是第二個(gè)四分位數(shù)(中位數(shù))。晶須(即帶有條形末端的虛線)從盒子中伸出,以顯示數(shù)據(jù)的范圍。

由于為每個(gè)組/變量繪制了框圖,因此很容易設(shè)置。x_data是組/變量的列表。Matplotlib函數(shù)boxplot()為y_data的每一列或序列y_data中的每個(gè)向量創(chuàng)建一個(gè)盒子圖;因此,x_data中的每個(gè)值對(duì)應(yīng)于y_data中的列/向量。我們所要設(shè)定的只是情節(jié)的美學(xué)。

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的

關(guān)于用Python代碼實(shí)現(xiàn)5種最好的、簡(jiǎn)單的數(shù)據(jù)可視化分別是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI