首頁  >  文章  >  後端開發  >  從青銅到王者,進階資料視覺化2.0的五個Python庫!

從青銅到王者,進階資料視覺化2.0的五個Python庫!

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼轉載
2019-08-29 17:40:003631瀏覽

從青銅到王者,進階資料視覺化2.0的五個Python庫!

資料視覺化的工具和程式庫已經極大豐盛,當你習慣其中一種或數種時,你會幹得很出色,但是如果你因此而沾沾自喜,就會錯失從青銅到王者的新工具和程式庫。如果你仍然堅持使用Matplotlib(這太神奇了),Seaborn(這也很神奇),Pandas(基本,簡單的可視化)和Bokeh,那麼你真的需要停下來了解一下新事物了。例如,python中有許多令人驚嘆的視覺化函式庫,而且通用化程度已經很高,例如下面這五個:

Plotly

Cufflinks

Folium

Altair Vega

D3.js(個人認為最好的選擇,因為我也用JS寫程式碼)

如果您了解並使用上面提到的函式庫,那麼您就處於進化的正確軌道上。它們可以幫助產生一些令人拍案的視覺化效果,語法也不難。一般來說,我更喜歡Plotly Cufflinks和D3.js. 以下詳細道來:

Plotly

Plotly是一個開源,互動式和基於瀏覽器的Python圖形庫。可以建立能在儀表板或網站中使用的互動式圖表(您可以將它們儲存為html檔案或靜態圖像)。 Plotly基於plotly.js,而plotly.js又基於D3.js,因此它是一個高級圖表庫,與Bokeh一樣,Plotly的強項是製作互動式圖,有超過30種圖表類型, 提供了一些在大多數庫中沒有的圖表,如等高線圖、樹狀圖、科學圖表、統計圖表、3D圖表、金融圖表等。 plotly最棒的一點是可以在Jupyter筆記本或獨立的HTML頁面中使用 。您也可以在他們的網站上在線使用它,但我更喜歡離線使用它,您也可以將視覺化保存為圖像,非常易於使用也非常實用。

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

首先,安裝plotly函式庫。

pip install plotly

然後開啟jupyter筆記本並鍵入:

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

語法超簡單!在Pandas中 ,你使用dataframe.plot() ,在這裡,您使用 dataframe.iplot()。這個「 i 」 改變了視覺化的整個定義。

只需一行程式碼,我產生了下面這個散佈圖。您可以根據需要自訂它。請記住指定模式標記,否則您將獲得一些線條。

從青銅到王者,進階資料視覺化2.0的五個Python庫!

請注意,隨著資料的增加,plotly會開始卡滯。所以,只有當資料點的小於500K時,我才會使用plotly。

相關推薦:《Python影片教學

Cufflinks

Cufflinks將Plotly直接綁定到pandas資料幀。這個組合非常驚人,結合了Pandas的靈活性,比Plotly更有效,語法甚至比plotly簡單。使用plotly的Python庫,您可以使用DataFrame的系列和索引來描述圖形,但是使用Cufflinks可以直接繪製它。如同下面這個例子:

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

從青銅到王者,進階資料視覺化2.0的五個Python庫!

with plotly

df.iplot(kind= 'scatter')

從青銅到王者,進階資料視覺化2.0的五個Python庫!

with cufflinks

從青銅到王者,進階資料視覺化2.0的五個Python庫!

##Cufflinks使得圖表繪製更加容易。您甚至 可以使用Cufflinks產生令人驚嘆的3D圖表 。我只用幾行程式碼產生了下面這個3D圖表。

###用Cufflinks產生的3D圖表######你可以隨時在Jupyter Notebook中試用它。 ######– 快速提示:######在組態中設定:###
c.NotebookApp.iopub_data_rate_limit = 1.0e10
###以下列方式匯入:###
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()
###接下來,我將談論另一個神庫——Viz庫。 #########Folium#########Folium建立在Python生態系統的資料優勢和Leaflet.js庫的映射優勢之上。您可以在python中操作數據,然後透過folium在Leaflet地圖中將其視覺化。 Folium是用來繪製空間資料的「神庫」。你也可以使用folium產生熱圖和等值區域圖。讓我們來了解folium:######地圖定義為 folium.Map 對象,可在folium頂部新增其他folium物件。 ######您可以為Folium渲染的地圖使用不同的地圖圖層,例如MapBox,OpenStreetMap和其他幾個圖層,你可以查看 此github庫資料夾 或 此文件頁面 。 ######你也可以選擇不同的地圖投影。有許多投影可供選擇。 ######讓我們用美國失業的Geojson來產生一個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=False,).add_to(m)

# 底层的GeoJson和StepColormap对象是可访问的

print(type(choropleth.geojson))
print(type(choropleth.color_scale))
folium.LayerControl(collapsed=False).add_to(m)
map.save(os.path.join('results', 'GeoChoro.html'))
map
###這只是一個基本的地圖,你可以添加標記,彈出視窗等等。可以是下面的leaflet和folium產生的地圖。 ###

從青銅到王者,進階資料視覺化2.0的五個Python庫!

Altair + Vega

Altair是一个声明性统计可视化库,基于Vega和Vega-Lite。

声明意味着只需要提供数据列与编码通道之间的链接,例如x轴,y轴,颜色等,其余的绘图细节它会自动处理。声明使Altair变得简单,友好和一致。使用Altair可以轻松设计出有效且美观的可视化代码。

Altair使您能够使用强大而简洁的可视化语法快速开发各种统计可视化图表。如果您使用的是Jupyter Notebook,则需要按以下方式安装它。它还包括一些示例vega数据集。

pip install -U altair vega_datasets notebook vega

Altair主要依赖Vega,为了使图表在屏幕上可见,你需要安装Vega,并且还需要为每个新会话运行此命令:

alt.renderers.enable(‘notebook’)

Altair中的数据是围绕Pandas Dataframe构建的。统计可视化最明显的特征是以整洁的Dataframes开始。您还可以将绘图另存为图像或在vega编辑器中打开它以获得更多选项。Altair可能不是最好的,但绝对值得一试。

下面这个例子,我使用了汽车数据集;

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)

從青銅到王者,進階資料視覺化2.0的五個Python庫!

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

D3.js(数据驱动文档DDD)

D3.js是一个JavaScript库,根据数据操作文档。您可以使用HTML,SVG和CSS将数据变成活灵活现的图表。D3并不要求您将自己绑定到任何专有框架,因为现代浏览器拥有D3所需的一切,它还用于组合强大的可视化组件和数据驱动的DOM操作方法。

D3.js是目前市场上最好的数据可视化库。 您可以将它与python一起使用,也可以与R一起使用。最初,它可以与JavaScript一起使用,因为JS具有广泛的功能并且需要大量的学习和经验,但是如果你是JS专业人员则不需要犹豫。虽然 Python 和 R 使D3.js变得更简单,但只是一点点!总之D3.js是绝对不会错的上佳之选。

D3py有3个主要依赖项:

NumPy

Pandas

NetworkX

我建议你使用JavaScript或R,而不是python,因为版本已经过时,最后一次更新是在2016年。而且只是D3.js的一个瘦的python包装器。

R提供D3可视化接口。使用 r2d3 ,您可以将数据从R绑定到D3可视化。使用 r2d3 创建的D3可视化就像RStudio,R Markdown文档和Shiny应用程序中的R图一样工作。您可以按如下方式从CRAN 安装 r2d3 软件包:

install.packages(“r2d3”)

你可以做一些惊人的可视化,例如下面这几个:

從青銅到王者,進階資料視覺化2.0的五個Python庫!

Sequences Sunburst — Kerry Rodden’s Block (Source)

從青銅到王者,進階資料視覺化2.0的五個Python庫!

以上是從青銅到王者,進階資料視覺化2.0的五個Python庫!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jianshu.com。如有侵權,請聯絡admin@php.cn刪除