国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
10個(gè)超級(jí)實(shí)用的數(shù)據(jù)可視化圖表總結(jié)!

來(lái)源丨愛數(shù)據(jù)LoveData


可視化是一種方便的觀察數(shù)據(jù)的方式,可以一目了然地了解數(shù)據(jù)塊。我們經(jīng)常使用柱狀圖、直方圖、餅圖、箱圖、熱圖、散點(diǎn)圖、線狀圖等。這些典型的圖對(duì)于數(shù)據(jù)可視化是必不可少的。除了這些被廣泛使用的圖表外,還有許多很好的卻很少被使用的可視化方法,這些圖有助于完成我們的工作,下面我們看看有那些圖可以進(jìn)行。


1、平行坐標(biāo)圖

Parallel Coordinate
我們最多可以可視化 3 維數(shù)據(jù)。但是我們有時(shí)需要可視化超過(guò) 3 維的數(shù)據(jù)才能獲得更多的信息。我們經(jīng)常使用 PCA 或 t-SNE 來(lái)降維并繪制它。在降維的情況下,可能會(huì)丟失大量信息。在某些情況下,我們需要考慮所有特征, 平行坐標(biāo)圖有助于做到這一點(diǎn)。

鳶尾花數(shù)據(jù)集的平行坐標(biāo)圖

上面的圖片。橫線(平行軸)表示鳶尾花的特征(花瓣長(zhǎng)、萼片長(zhǎng)、萼片寬、花瓣寬)。分類是Setosa, Versicolor和Virginica。上圖將該物種編碼為Setosa→1,Versicolor→2,Virginica→3。每個(gè)平行軸包含最小值到最大值(例如,花瓣長(zhǎng)度從1到6.9,萼片長(zhǎng)度從4.3到7.9,等等)。例如,考慮花瓣長(zhǎng)度軸。這表明與其他兩種植物相比,瀨蝶屬植物的花瓣長(zhǎng)度較小,其中維珍屬植物的花瓣長(zhǎng)度最高。

有了這個(gè)圖,我們可以很容易地獲得數(shù)據(jù)集的總體信息。數(shù)據(jù)集是什么樣子的?讓我們來(lái)看看。


讓我們用Plotly Express庫(kù)[1]可視化數(shù)據(jù)。Plotly庫(kù)提供了一個(gè)交互式繪圖工具。
import plotly.express as px df = px.data.iris() fig = px.parallel_coordinates(df, color='species_id', labels={'species_id': 'Species', 'sepal_width': 'Sepal Width', 'sepal_length': 'Sepal Length', 'petal_width': 'Petal Width', 'petal_length': 'Petal Length', }, color_continuous_scale=px.colors.diverging.Tealrose, color_continuous_midpoint=2) fig.show()


除了上圖以外我們還可以使用其他庫(kù),如pandas、scikit-learn和matplotlib來(lái)繪制并行坐標(biāo)。


六邊形分箱圖

Hexagonal Binning

六邊形分箱圖是一種用六邊形直觀表示二維數(shù)值數(shù)據(jù)點(diǎn)密度的方法。
 ax = df.plot.hexbin(x='sepal_width', y='sepal_length',
                     gridsize=20,color='#BDE320')
Pandas 允許我們繪制六邊形 binning [2]。我已經(jīng)展示了用于查找 sepal_width 和 sepal_length 列的密度的圖。

如果仔細(xì)觀察圖表,我們會(huì)發(fā)現(xiàn)總面積被分成了無(wú)數(shù)個(gè)六邊形。每個(gè)六邊形覆蓋特定區(qū)域。我們注意到六邊形有顏色變化。六邊形有的沒(méi)有顏色,有的是淡綠色,有的顏色很深。根據(jù)圖右側(cè)顯示的色標(biāo),顏色密度隨密度變化。比例表示具有顏色變化的數(shù)據(jù)點(diǎn)的數(shù)量。六邊形沒(méi)有填充顏色,這意味著該區(qū)域沒(méi)有數(shù)據(jù)點(diǎn)。

其他庫(kù),如 matplotlib、seaborn、bokeh(交互式繪圖)也可用于繪制它。


等高線密度圖

Contour

二維等高線密度圖是可視化特定區(qū)域內(nèi)數(shù)據(jù)點(diǎn)密度的另一種方法。這是為了找到兩個(gè)數(shù)值變量的密度。例如,下面的圖顯示了在每個(gè)陰影區(qū)域有多少數(shù)據(jù)點(diǎn)。

 
import plotly.express as px fig = px.density_contour(df, x='sepal_width', y='sepal_length') fig.update_traces(contours_coloring='fill', contours_showlabels = True) fig.show()


為了生成上面的圖表,我這里使用了plotly庫(kù),因?yàn)樗梢苑奖愕乩L制交互式的圖表。我們這里繪制了兩個(gè)變量 sepal_width 和 sepal_length 的密度。

當(dāng)然,也可以使用其他庫(kù),如seaborn、matplotlib等。


4、QQ-plot


QQ plot是另一個(gè)有趣的圖。QQ是Quantile - Quantile plot的縮寫(Quantile/percentile是一個(gè)范圍,在這個(gè)范圍內(nèi)數(shù)據(jù)下降了指定百分比。例如,第10個(gè)quantile/percentile表示在該范圍下,找到了10%的數(shù)據(jù),90% 超出范圍)。這是一種直觀地檢查數(shù)值變量是否服從正態(tài)分布的方法。讓我解釋一下它是如何工作的。
(a)樣本分布(b)標(biāo)準(zhǔn)正態(tài)分布

圖(a)是樣本分布;(b) 是標(biāo)準(zhǔn)正態(tài)分布。對(duì)于樣本分布,數(shù)據(jù)范圍從 10 到 100(100% 數(shù)據(jù)在 10 到 100 之間)。但對(duì)于標(biāo)準(zhǔn)正態(tài)分布,100% 的數(shù)據(jù)在 -3 到 3(z 分?jǐn)?shù))的范圍內(nèi)。在 QQ 圖中,兩個(gè) x 軸值均分為 100 個(gè)相等的部分(稱為分位數(shù))。如果我們針對(duì) x 和 y 軸繪制這兩個(gè)值,我們將得到一個(gè)散點(diǎn)圖。

QQ-plot

散點(diǎn)圖位于對(duì)角線上。這意味著樣本分布是正態(tài)分布。如果散點(diǎn)圖位于左邊或右邊而不是對(duì)角線,這意味著樣本不是正態(tài)分布的。

導(dǎo)入必要的庫(kù)

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns

生成正態(tài)分布數(shù)據(jù)。

np.random.seed(10) # Generate Univariate Observations gauss_data = 5 * np.random.randn(100) + 50

繪制數(shù)據(jù)點(diǎn)的分布。

sns.histplot(data=gauss_data, kde=True)
該圖顯示數(shù)據(jù)是正態(tài)分布的。我們用數(shù)據(jù)點(diǎn)做qq-plot來(lái)檢驗(yàn)它是否正態(tài)分布。

import statsmodels.api as sm # q-q plot sm.qqplot(gauss_data, line='s') plt.show()

該圖顯示散點(diǎn)位于對(duì)角線上。所以它是正態(tài)分布的。


小提琴圖

Violin Plot

小提琴圖與箱線圖相關(guān)。我們能從小提琴圖中獲得的另一個(gè)信息是密度分布。簡(jiǎn)單來(lái)說(shuō)就是一個(gè)結(jié)合了密度分布的箱線圖。我們將其與箱線圖進(jìn)行比較。

在小提琴圖中,小提琴中間的白點(diǎn)表示中點(diǎn)。實(shí)心框表示四分位數(shù)間距 (IQR)。上下相鄰值是異常值的圍欄。超出范圍,一切都是異常值。下圖顯示了比較。

盒狀圖和小提琴狀圖的常見組成。所有學(xué)術(shù)級(jí)別的薪酬總額

讓我們看看小提琴圖的可視化。

import seaborn as sns sns.violinplot(data=df, y='sepal_width')


我們還可以通過(guò)傳遞名稱來(lái)繪制不同物種的小提琴圖。

import seaborn as sns sns.violinplot(data=df,x='species', y='sepal_width')

還可以使用其他庫(kù),如plotly、matplotlib等來(lái)繪制小提琴圖。


箱線圖的改進(jìn)版

Boxen plot

Boxenplot 是 seaborn 庫(kù)引入的一種新型箱線圖。對(duì)于箱線圖,框是在四分位數(shù)上創(chuàng)建的。但在 Boxenplot 中,數(shù)據(jù)被分成更多的分位數(shù)。它提供了對(duì)數(shù)據(jù)的更多內(nèi)存。

鳶尾花數(shù)據(jù)集的 Boxenplot 顯示了 sepal_width 的數(shù)據(jù)分布。

sns.boxenplot(x=df['sepal_width'])


上圖顯示了比箱線圖更多的盒。這是因?yàn)槊總€(gè)框代表一個(gè)特定的分位數(shù)。

sns.boxenplot(data=df, x='species',y='sepal_width')

不同物種sepal_width的Boxenplot圖。



點(diǎn)圖


圖中有一些名為誤差線的垂直線和其他一些連接這些垂直線的線。讓我們看看它的確切含義。
點(diǎn)圖是一種通過(guò)上圖中顯示的點(diǎn)的位置來(lái)表示數(shù)值變量集中趨勢(shì)的方法,誤差條表示變量的不確定性(置信區(qū)間)[4]。繪制線圖是為了比較不同分類值的數(shù)值變量的變異性 [4]。

讓我們舉一個(gè)實(shí)際的例子—-我們繼續(xù)使用 seaborn 庫(kù)和 iris 數(shù)據(jù)集(在平行坐標(biāo)部分中提到)。

import seaborn as sns sns.pointplot(data=df,x='species', y='sepal_width')

該圖表顯示了不同花的萼片寬度的變異性。我們還可以繪制多個(gè)點(diǎn)圖。


分簇散點(diǎn)圖

Swarm plot

Swarm plot 是另一個(gè)受“beeswarm”啟發(fā)的有趣圖表。通過(guò)此圖我們可以輕松了解不同的分類值如何沿?cái)?shù)值軸分布 [5]。它在不重疊數(shù)據(jù)點(diǎn)的情況下繪制數(shù)據(jù)。但它不適用于大型數(shù)據(jù)集。

import seaborn as sns sns.swarmplot(data=df,x='species', y='sepal_width')



旭日?qǐng)D

Sunburst Chart

它是圓環(huán)圖或餅圖的定制版本,將一些額外的層次信息集成到圖中 [7]。

Sunburst Chart

整個(gè)圖表被分成幾個(gè)環(huán)(從內(nèi)到外)。它保存層次結(jié)構(gòu)信息,其中內(nèi)環(huán)位于層次結(jié)構(gòu)的頂部,外環(huán)位于較低的[7]階。

以上日暴圖的數(shù)據(jù)

import plotly.express as px df = px.data.tips()


繪制旭日?qǐng)D

fig = px.sunburst(df, path=['sex', 'day', 'time'], values='total_bill', color='time') fig.show()


sunburst類的path屬性提供了層次結(jié)構(gòu),其中性別位于層次結(jié)構(gòu)的頂部,然后是日期和時(shí)間。


詞云

Word Cloud

詞云圖的想法非常簡(jiǎn)單。假設(shè)我們有一組文本文檔。單詞有很多,有些是經(jīng)常出現(xiàn)的,有些是很少出現(xiàn)的。在詞云圖中,所有單詞都被繪制在特定的區(qū)域中,頻繁出現(xiàn)的單詞被高亮顯示(用較大的字體顯示)。有了這個(gè)詞云,我們可以很容易地找到重要的客戶反饋,熱門的政治議程話題等。

數(shù)據(jù)集:https://opendatacommons.org/licenses/odbl/1-0/

import pandas as pd data=pd.read_csv('/work/android-games.csv') data.head()


我們統(tǒng)計(jì)每個(gè)類別的數(shù)據(jù)數(shù)量

data.category.value_counts()GAME CARD 126GAME WORD 104GAME ACTION 100GAME ADVENTURE 100GAME STRATEGY 100GAME PUZZLE 100GAME SIMULATION 100GAME CASUAL 100GAME ARCADE 100GAME ROLE PLAYING 100GAME TRIVIA 100GAME BOARD 100GAME CASINO 100GAME RACING 100GAME EDUCATIONAL 100GAME SPORTS 100GAME MUSIC 100Name: category, dtype: int64

我們進(jìn)行可視化。

#importing the module from wordcloud library from wordcloud import WordCloud import matplotlib.pyplot as plt
#creating a text from the category column by taking only the 2nd part of the category. text = ' '.join(cat.split()[1] for cat in data.category)
#generating the cloud word_cloud = WordCloud(collocations = False, background_color = 'black').generate(text) plt.imshow(word_cloud, interpolation='bilinear') plt.axis('off') plt.show()
 
該圖表顯示了頻率最高的所有類別。我們也可以用這個(gè)圖從文本中找到經(jīng)常出現(xiàn)的單詞。


結(jié)
數(shù)據(jù)可視化是數(shù)據(jù)科學(xué)中不可缺少的一部分。在數(shù)據(jù)科學(xué)中,我們與數(shù)據(jù)打交道。手工分析少量數(shù)據(jù)是可以的,但當(dāng)我們處理數(shù)千個(gè)數(shù)據(jù)時(shí)它就變得非常麻煩。如果我們不能發(fā)現(xiàn)數(shù)據(jù)集的趨勢(shì)和洞察力,我們可能無(wú)法使用這些數(shù)據(jù)。希望上面介紹的的圖可以幫助你深入了解數(shù)據(jù)。

以下是本文的引用:

https://plotly.com/python/parallel-coordinates-plot/
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.hexbin.html
Hintze, V. P. A Box Plot-Density Trace Synergism. Am. Sat, (52), 181 (Open Access Journal).
seaborn.pointplot — seaborn 0.12.1 documentation (pydata.org)
seaborn.swarmplot — seaborn 0.12.1 documentation (pydata.org)
Create a sunburst chart in Office — Microsoft Support
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
盤一盤 Python 系列 6 - Seaborn
Python數(shù)據(jù)分析 | seaborn工具與數(shù)據(jù)可視化
數(shù)據(jù)可視化干貨:使用pandas和seaborn制作炫酷圖表(附代碼)
干貨:12個(gè)案例教你用Python玩轉(zhuǎn)數(shù)據(jù)可視化(建議收藏)
Python Seaborn綜合指南,成為數(shù)據(jù)可視化專家
用Seaborn繪制圖表
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服