Python數(shù)據(jù)可視化,被Altair圈粉了
↑↑↑點(diǎn)擊上方藍(lán)字,回復(fù)資料,10個G的驚喜
神奇的Altair
介紹本期主角之前,先給大家一張GIF

是不是很炫酷?更神奇的是,完成這么一幅可交互的圖表,僅需不到20行代碼。
這幅圖是用Python的可視化庫Altair繪制的,Altair可以使用強(qiáng)大而簡潔的可視化語法快速開發(fā)各種統(tǒng)計可視化圖表。用戶只需要提供數(shù)據(jù)列與編碼通道之間的鏈接,例如x軸,y軸,顏色等,其余的繪圖細(xì)節(jié)它會自動處理。
事實上,Altair能做的還有很多,大家可以去官網(wǎng)example gallery觀賞
安裝、配置、導(dǎo)入Altair
如果你安裝的是anaconda(我強(qiáng)烈建議你安裝這個IDE),Altair已經(jīng)內(nèi)置,無需再安裝。但是如果需要實例數(shù)據(jù)集,還要安裝vega_datasets:
pip?install?vega_datasets
然后打開anaconda安裝目錄,打開Navigation
打開JupyterLab
新建一個notebook,運(yùn)行示例代碼,OK!
Altair圖形語法
Chart有三個基本方法:數(shù)據(jù)(data)、標(biāo)記(mark)和編碼(encode),使用它們的格式如下:alt.Chart(data).mark_point().encode(
encoding_1='column_1',
encoding_2='column_2',
etc. )
Data:Altair內(nèi)部使用的數(shù)據(jù)以Pandas中的Dataframe格式存儲,但有以下三種方式傳入:
以Pandas的DataFrame格式傳入; 以Data對象傳入; 以指向csv或json文本的url傳入;
Mark:定義好數(shù)據(jù)之后,需要選擇顯示的圖形比如條形圖、折線圖、面積圖、散點(diǎn)圖、直方圖、地圖等各種交互式圖表。
Encoding:編碼方式定義了圖片顯示的各種屬性,如每個圖片的位置,圖片軸的屬性等。這部分是最重要的,記住關(guān)鍵的幾個就行。
位置通道:定義位置相關(guān)屬性:
x: x軸數(shù)值 y: y軸數(shù)值 row: 按行分列圖片 column: 按列分列圖片
通道描述:
color: 標(biāo)記點(diǎn)顏色 opacity: 標(biāo)記點(diǎn)的透明度 shape: 標(biāo)記點(diǎn)的形狀 size: 標(biāo)記點(diǎn)的大小
通道域信息:text:文本標(biāo)記 label:標(biāo)簽
數(shù)據(jù)類型:
quantitative:縮寫Q 連續(xù)型數(shù)據(jù) ordinal:縮寫O 離散型 nominal:縮寫N 離散無序 temporal:縮寫T 時間序列
分類與聚合:最大值、最小值、均值、求和等等
交互
除了繪制基本圖像,Altair強(qiáng)大之處在于用戶可以與圖像進(jìn)行交互,包括平移、縮放、選中某一塊數(shù)據(jù)等操作。在繪制圖片的代碼后面,調(diào)用interactive()模塊,就能實現(xiàn)平移、縮放。
Altair還為創(chuàng)建交互式圖像提供了一個selection的API,在選擇功能上,我們能做出一些更酷炫的高級功能,例如本文開頭處展示的GIF,對選中的數(shù)據(jù)點(diǎn)進(jìn)行統(tǒng)計,生成實時的直方圖。?
import?altair?as?alt?
from?vega_datasets?import?data
source?=?data.cars()
brush?=?alt.selection(type='interval')
points?=?alt.Chart(source).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(source).mark_bar().encode(?y='Origin:N',?color='Origin:N',?x='count(Origin):Q'?).transform_filter(?brush?)
points?&?bars學(xué)習(xí)方法與建議
沒什么捷徑,只有多看文檔、源碼
機(jī)器學(xué)習(xí)從 入 門 到 精 通 路 線 圖
阿里云Python訓(xùn)練營總結(jié):聊聊堅持的意義



