Python數(shù)據(jù)可視化的四種簡(jiǎn)易方法

2021-02-27    分類: 網(wǎng)站建設(shè)

數(shù)據(jù)可視化是任何數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)項(xiàng)目的一個(gè)重要組成部分。人們常常會(huì)從探索數(shù)據(jù)分析(EDA)開始,來深入了解數(shù)據(jù),并且創(chuàng)建可視化確實(shí)有助于讓問題更清晰和更容易理解,尤其是對(duì)于那些較大的高維度數(shù)據(jù)集。在項(xiàng)目結(jié)束的時(shí)候,能夠以清晰的、簡(jiǎn)潔的和令人信服的方式呈現(xiàn)最終結(jié)果,這是非常重要的,讓你的用戶能夠理解和明白。你可能已經(jīng)看過了我之前的文章《5種快速和簡(jiǎn)單的Python數(shù)據(jù)可視化方法(含代碼)》(5 Quick and Easy Data Visualizations in Python with Code),其中介紹了5種基本可視化方法:散點(diǎn)圖、線圖、柱狀圖、條形圖和箱形圖。這五個(gè)是簡(jiǎn)單而強(qiáng)大的可視化方法,你絕對(duì)可以通過這些方法從數(shù)據(jù)集中得到巨大的收獲。在本文中,將介紹另外4個(gè)數(shù)據(jù)可視化方法,但稍微復(fù)雜一些,你可以在看完上一篇文章介紹的基本方法之后再用。

熱圖(Heat Map)

熱圖是數(shù)據(jù)的矩陣表示方式,其中每個(gè)矩陣的值用一種顏色來表示。不同的顏色代表不同的級(jí)別,矩陣指數(shù)將兩個(gè)對(duì)比的列或特征連接在一起。熱圖可以很好地顯示出多個(gè)特征變量之間的關(guān)系,因?yàn)榭梢灾苯影岩粋€(gè)級(jí)別看作一種顏色。還可以通過觀察熱圖中的一些點(diǎn)來查看每個(gè)關(guān)系是如何與數(shù)據(jù)集中的其它關(guān)系進(jìn)行比較的。這些顏色的確提供了簡(jiǎn)單的表示方式,因?yàn)檫@是非常直觀的。


現(xiàn)在來看下代碼:與matplotlib庫相比,seaborn庫可用于更高級(jí)的圖表,通常也需要更多的組件,如更多的顏色、圖形或者變量。Matplotlib庫用于顯示圖表,numpy用于生成數(shù)據(jù),而pandas用于控制。繪圖只是調(diào)用一個(gè)簡(jiǎn)單的seaborn函數(shù),如果你發(fā)現(xiàn)了一些在視覺上很特別的東西,通過這個(gè)函數(shù),還可以設(shè)置顏色映射。


二維密度圖(2D Density Plot)

二維密度圖是一維版本的簡(jiǎn)單擴(kuò)展,能夠看到關(guān)于2個(gè)變量的概率分布。讓我們看看下面的二維密度圖,右邊的刻度用顏色表示每一點(diǎn)的概率。高的概率,看下數(shù)據(jù)集,似乎大約是0.5的大小和1.4-ish的速度。正如你所看到的,二維密度圖對(duì)于快速確定數(shù)據(jù)對(duì)于兩個(gè)變量最集中的區(qū)域非常地顯著,而不是像一維密度圖那樣只集中一個(gè)變量。當(dāng)你有兩個(gè)對(duì)輸出結(jié)果非常重要的變量,并且希望了解它們?nèi)绾我黄饘?duì)輸出結(jié)果分布起作用的時(shí)候,二維密度圖尤其適合。


Seaborn的代碼超級(jí)簡(jiǎn)單,我們將通過創(chuàng)建一個(gè)偏態(tài)分布介紹它。如果你發(fā)現(xiàn)某些顏色和陰影在視覺上更特別,那么大多數(shù)的可選參數(shù)都是為了看起來更清晰。

蜘蛛圖(Spider Plot)

蜘蛛圖是顯示一對(duì)多關(guān)系最好的方法之一。也就是說,你可以繪制并查看區(qū)別于單個(gè)變量或類別的多個(gè)變量的值。在蜘蛛圖中,一個(gè)變量相對(duì)于另一個(gè)變量的特性是顯而易見的,因?yàn)槊娣e和長(zhǎng)度在一些方向上變化了。如果你希望了解幾個(gè)類別關(guān)于這些變量是如何疊加起來的,可以并排繪制一下。在下圖中,很容易比較三個(gè)電影角色的不同屬性,并了解他們的優(yōu)勢(shì)所在!


這次我們將能夠直接使用matplotlib來創(chuàng)建可視化,而不是用seaborn。需要計(jì)算每個(gè)屬性所在的角度,因?yàn)槲覀兿M鼈冄貓A周被平均地分隔開。我們將在每個(gè)計(jì)算的角度放置標(biāo)簽,然后把值繪制成一個(gè)點(diǎn),該點(diǎn)到中心的距離取決于它的值或是級(jí)別。最后,為了清晰起見,我們將使用半透明的顏色填充由連接各屬性點(diǎn)的線所包含的區(qū)域。


樹形圖(Tree Diagram)

我們從小學(xué)就開始使用樹形圖了,樹形圖既自然又直觀,還易于解釋。直接連接的節(jié)點(diǎn)關(guān)系密切,而與有多個(gè)連接的節(jié)點(diǎn)差別很大。在下圖中,我已經(jīng)根據(jù)統(tǒng)計(jì)繪制了一小部分來自Kaggle的Pokemon with stats數(shù)據(jù)集:

HP、攻擊、防御、特殊攻擊、特殊防御、速度

因此,與stats wise最匹配的Pokemon將緊密連接在一起。例如,我們看到,在頂部,Arbok和Fearow是直接連接的,而且,如果我們查看數(shù)據(jù),Arbok總共有438個(gè),而Fearow有442個(gè),非常接近。但是一旦我們移動(dòng)到Raticate,我們得到的總數(shù)是413,這與Arbok和Fearow的差別很大,這就是它們被分開的原因。當(dāng)我們移動(dòng)樹的時(shí)候,基于相似性,Pokemon被分的組越來越多。在綠色組中的Pokemon相互之間比紅色組中的更相似,即使沒有直接的綠色連接。


對(duì)于樹形圖,我們實(shí)際上要使用Scipy的。在查看了數(shù)據(jù)集之后,我們將去掉字符串類型的列。我們這么做只是為了要得到正確的可視化結(jié)果,但在實(shí)踐中,最好是把這些字符串轉(zhuǎn)換成分類變量,為了得到更好的結(jié)果和進(jìn)行比較,我們還設(shè)置了數(shù)據(jù)幀索引,以便能夠適當(dāng)?shù)赜盟鳛橐妹總€(gè)節(jié)點(diǎn)的列。最后,在Scipy中計(jì)算和繪制樹形圖是非常簡(jiǎn)單的事了。

分享名稱:Python數(shù)據(jù)可視化的四種簡(jiǎn)易方法
標(biāo)題鏈接:http://www.muchs.cn/news40/103290.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)動(dòng)態(tài)網(wǎng)站、定制網(wǎng)站定制開發(fā)、品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)