溫馨提示×

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

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

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

發(fā)布時(shí)間:2020-11-09 13:59:47 來(lái)源:億速云 閱讀:269 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

數(shù)據(jù)可視化的工具和程序庫(kù)已經(jīng)極大豐盛,當(dāng)你習(xí)慣其中一種或數(shù)種時(shí),你會(huì)干得很出色,但是如果你因此而沾沾自喜,就會(huì)錯(cuò)失從青銅到王者的新工具和程序庫(kù)。如果你仍然堅(jiān)持使用Matplotlib(這太神奇了),Seaborn(這也很神奇),Pandas(基本,簡(jiǎn)單的可視化)和Bokeh,那么你真的需要停下來(lái)了解一下新事物了。例如,python中有許多令人驚嘆的可視化庫(kù),而且通用化程度已經(jīng)很高,例如下面這五個(gè):

Plotly

Cufflinks

Folium

Altair + Vega

D3.js(個(gè)人認(rèn)為最好的選擇,因?yàn)槲乙灿肑S寫(xiě)代碼)

如果您了解并使用上面提到的庫(kù),那么您就處于進(jìn)化的正確軌道上。它們可以幫助生成一些令人拍案的可視化效果,語(yǔ)法也不難。一般來(lái)說(shuō),我更喜歡Plotly+Cufflinks和 D3.js. 以下詳細(xì)道來(lái):

Plotly

Plotly是一個(gè)開(kāi)源,交互式和基于瀏覽器的Python圖形庫(kù)??梢詣?chuàng)建能在儀表板或網(wǎng)站中使用的交互式圖表(您可以將它們保存為html文件或靜態(tài)圖像)。Plotly基于plotly.js,而plotly.js又基于D3.js,因此它是一個(gè)高級(jí)圖表庫(kù),與Bokeh一樣,Plotly的 強(qiáng)項(xiàng)是制作交互式圖 ,有超過(guò)30種圖表類(lèi)型, 提供了一些在大多數(shù)庫(kù)中沒(méi)有的圖表 ,如等高線圖、樹(shù)狀圖、科學(xué)圖表、統(tǒng)計(jì)圖表、3D圖表、金融圖表等。 plotly最棒的一點(diǎn)是可以在Jupyter筆記本或獨(dú)立的HTML頁(yè)面中使用 。您也可以在他們的網(wǎng)站上在線使用它,但我更喜歡離線使用它,您也可以將可視化保存為圖像,非常易于使用也非常實(shí)用。

– 在Jupyter Notebook中使用Plotly的方法(離線)

首先,安裝plotly庫(kù)。

pip install plotly

然后打開(kāi)jupyter筆記本并鍵入:

from plotly import __version__ 
from plotly.offline import download_plotlyjs,init_notebook_mode,plot,iplot init_notebook_mode(connected = True)

語(yǔ)法超簡(jiǎn)單!在Pandas中 ,你使用dataframe.plot() ,在這里,您使用 dataframe.iplot()。 這個(gè)“ i ” 改變了可視化的整個(gè)定義。

只需一行代碼,我生成了下面這個(gè)散點(diǎn)圖。您可以根據(jù)需要自定義它。請(qǐng)記住指定模式標(biāo)記,否則您將獲得一些線條。

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

請(qǐng)注意,隨著數(shù)據(jù)的增加,plotly會(huì)開(kāi)始卡滯。所以,只有當(dāng)數(shù)據(jù)點(diǎn)的小于500K時(shí),我才會(huì)使用plotly。

Cufflinks

Cufflinks將Plotly直接綁定到pandas數(shù)據(jù)幀。這種組合非常驚人,結(jié)合了Pandas的靈活性,比Plotly更有效,語(yǔ)法甚至比plotly簡(jiǎn)單。使用plotly的Python庫(kù),您可以使用DataFrame的系列和索引來(lái)描述圖形,但是使用Cufflinks可以直接繪制它。正如下面這個(gè)例子:

df = cf.datagen.lines()py.iplot([{  'x':df.index, 'y':df [col], 'name':col } 
<strong>for</strong> col <strong>in</strong> df.columns])

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

with plotly

df.iplot(kind= 'scatter')

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

with cufflinks

Cufflinks使得圖表繪制更加容易。您甚至還 可以使用Cufflinks生成令人驚嘆的3D圖表 。我只用幾行代碼生成了下面這個(gè)3D圖表。

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

用Cufflinks生成的3D圖表

你可以隨時(shí)在Jupyter Notebook中試用它。

– 快速竅門(mén):

在配置中設(shè)置:

c.NotebookApp.iopub_data_rate_limit = 1.0e10

按以下方式導(dǎo)入:

import plotly.graph_objs as go
import plotly.plotly as py 
import cufflinks as cf 
from plotly.offline import iplot,init_notebook_mode 
cf.go_offline()
#Set global theme 
cf.set_config_file(world_readable = True,theme ='pearl',offline = True )
init_notebook_mode()

接下來(lái),我將談?wù)摿硪粋€(gè)神庫(kù)——Viz庫(kù)。

Folium

Folium建立在Python生態(tài)系統(tǒng)的數(shù)據(jù)優(yōu)勢(shì)和Leaflet.js庫(kù)的映射優(yōu)勢(shì)之上。您可以在python中操作數(shù)據(jù),然后通過(guò)folium在Leaflet地圖中將其可視化。Folium是一個(gè)用于繪制空間數(shù)據(jù)的“神庫(kù)”。你還可以使用folium生成熱圖和等值區(qū)域圖。讓我們了解一下folium:

地圖定義為 folium.Map 對(duì)象,可在folium頂部添加其他folium對(duì)象。

您可以為Folium渲染的地圖使用不同的地圖圖層,例如MapBox,OpenStreetMap和其他幾個(gè)圖層,你可以查看 此github庫(kù)文件夾 或 此文檔頁(yè)面 。

你還可以選擇不同的地圖投影。有許多投影可供選擇。

讓我們用美國(guó)失業(yè)的Geojson生成一個(gè)Choropleth地圖。以下是片段:

map = folium.Map([43, -100], zoom_start=4)
choropleth = folium.Choropleth( geo_data=us_states, data=state_data, 
columns=['State', 'Unemployment'], key_on='feature.id', fill_color='YlGn', name='Unenployment', 
show=<strong>False</strong>,).add_to(m)
<em>
# 底層的GeoJson和StepColormap對(duì)象是可訪問(wèn)的
</em>
print(type(choropleth.geojson))
print(type(choropleth.color_scale))
folium.LayerControl(collapsed=<strong>False</strong>).add_to(m)
map.save(os.path.join('results', 'GeoChoro.html'))
map

這只是一個(gè)基本的地圖,你可以添加標(biāo)記,彈出窗口等等。可以是下面的leaflet和folium生成的地圖。

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

Altair + Vega

Altair是一個(gè)聲明性統(tǒng)計(jì)可視化庫(kù),基于Vega和Vega-Lite。

聲明意味著只需要提供數(shù)據(jù)列與編碼通道之間的鏈接,例如x軸,y軸,顏色等,其余的繪圖細(xì)節(jié)它會(huì)自動(dòng)處理。聲明使Altair變得簡(jiǎn)單,友好和一致。使用Altair可以輕松設(shè)計(jì)出有效且美觀的可視化代碼。

Altair使您能夠使用強(qiáng)大而簡(jiǎn)潔的可視化語(yǔ)法快速開(kāi)發(fā)各種統(tǒng)計(jì)可視化圖表。如果您使用的是Jupyter Notebook,則需要按以下方式安裝它。它還包括一些示例vega數(shù)據(jù)集。

pip install -U altair vega_datasets notebook vega

Altair主要依賴(lài)Vega,為了使圖表在屏幕上可見(jiàn),你需要安裝Vega,并且還需要為每個(gè)新會(huì)話運(yùn)行此命令:

alt.renderers.enable(‘notebook’)

Altair中的數(shù)據(jù)是圍繞Pandas Dataframe構(gòu)建的。統(tǒng)計(jì)可視化最明顯的特征是以整潔的Dataframes開(kāi)始。您還可以將繪圖另存為圖像或在vega編輯器中打開(kāi)它以獲得更多選項(xiàng)。Altair可能不是最好的,但絕對(duì)值得一試。

下面這個(gè)例子,我使用了汽車(chē)數(shù)據(jù)集;

import altair as altfrom vega_datasets 
import datasource = data.cars()
brush = alt.selection(type='interval')
points = alt.Chart().mark_point().encode( x='Horsepower:Q', y='Miles_per_Gallon:Q', 
color=alt.condition(brush, 'Origin:N', alt.value('lightgray'))).add_selection( brush)
bars = alt.Chart().mark_bar().encode( y='Origin:N', color='Origin:N', 
x='count(Origin):Q').transform_filter( brush)
alt.vconcat(points, bars, data=source)

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

Altair和Vega生成的分散圖和直方圖

D3.js(數(shù)據(jù)驅(qū)動(dòng)文檔DDD)

D3.js是一個(gè)JavaScript庫(kù),根據(jù)數(shù)據(jù)操作文檔。您可以使用HTML,SVG和CSS將數(shù)據(jù)變成活靈活現(xiàn)的圖表。D3并不要求您將自己綁定到任何專(zhuān)有框架,因?yàn)楝F(xiàn)代瀏覽器擁有D3所需的一切,它還用于組合強(qiáng)大的可視化組件和數(shù)據(jù)驅(qū)動(dòng)的DOM操作方法。

D3.js是目前市場(chǎng)上最好的數(shù)據(jù)可視化庫(kù)。 您可以將它與python一起使用,也可以與R一起使用。最初,它可以與JavaScript一起使用,因?yàn)镴S具有廣泛的功能并且需要大量的學(xué)習(xí)和經(jīng)驗(yàn),但是如果你是JS專(zhuān)業(yè)人員則不需要猶豫。雖然 Python 和 R 使D3.js變得更簡(jiǎn)單,但只是一點(diǎn)點(diǎn)!總之D3.js是絕對(duì)不會(huì)錯(cuò)的上佳之選。

D3py有3個(gè)主要依賴(lài)項(xiàng):

NumPy

Pandas

NetworkX

我建議你使用JavaScript或R,而不是python,因?yàn)榘姹疽呀?jīng)過(guò)時(shí),最后一次更新是在2016年。而且只是D3.js的一個(gè)瘦的python包裝器。

R提供D3可視化接口。使用 r2d3 ,您可以將數(shù)據(jù)從R綁定到D3可視化。使用 r2d3 創(chuàng)建的D3可視化就像RStudio,R Markdown文檔和Shiny應(yīng)用程序中的R圖一樣工作。您可以按如下方式從CRAN 安裝 r2d3 軟件包:

install.packages(“r2d3”)

你可以做一些驚人的可視化,例如下面這幾個(gè):

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

Sequences Sunburst — Kerry Rodden’s Block (Source)

進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么

以上是進(jìn)階數(shù)據(jù)可視化2.0的五個(gè)Python庫(kù)分別是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向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