繼Pyecharts之后,又一款國(guó)產(chǎn)可視化軟件
續(xù)前篇??中國(guó)人自己的可視化利器:Pyecharts,本期分享另一個(gè)國(guó)人可視化工具PyG2Plot。
介紹之前,先梳理下G2、G2Plot、PyG2Plot三者關(guān)系,
G2:一套由螞蟻集團(tuán)數(shù)據(jù)可視化團(tuán)隊(duì)(AntV)開發(fā),基于圖層圖形語(yǔ)法(the grammar of graphics,同ggplot2底層語(yǔ)法)的可視化底層高交互引擎; G2Plot:基于G2封裝,力求開箱即用、易于配置、具有良好交互體驗(yàn)的JavaScript統(tǒng)計(jì)圖表庫(kù); PyG2Plot:基于G2Plot封裝的Python統(tǒng)計(jì)圖表庫(kù),借鑒Pyecharts圖表實(shí)現(xiàn)形式,但比Pyecharts更簡(jiǎn)練。總之,G2Plot之于PyG2Plot就如同Pyecharts之于Echarts。
安裝
pip?install?pyg2plot
快速上手
PyG2Plot是完全基于G2Plot的封裝,并且在數(shù)據(jù)結(jié)構(gòu)上,完全不做任何二次封裝,所以配置文檔上完全可以參考G2Plot官方文檔。
下面用幾個(gè)案例來(lái)說(shuō)明如何參考G2Plot官方文檔,使用PyG2Plot,
案例一、桑基圖
G2Plot地址:https://antv-g2plot.gitee.io/zh/examples/relation-plots/sankey#energy
將上圖繪圖數(shù)據(jù)和核心代碼照抄到PyG2Plot中即可實(shí)現(xiàn)相同功能??
#導(dǎo)入pyg2plot
from?pyg2plot?import?Plot
#?獲取上文G2Plot代碼中的json數(shù)據(jù),存入data
import?requests
data?=?requests.get(
????"https://gw.alipayobjects.com/os/bmw-prod/fa3414cc-75ed-47b4-8306-f2ffe8c40127.json"
).json()
#?指定繪圖類別Sankey
sankey?=?Plot("Sankey")
#下面set_options的{}中的代碼完全照搬自G2Plot,關(guān)鍵字添加''即可,
sankey.set_options({
????'height':500,
????'data':?data,
????'sourceField':?'source',
????'targetField':?'target',
????'weightField':?'value',
????'edgeStyle':?{
????????'fill':?'#ccc',
????????'fillOpacity':?0.4,
????},
})
#?圖像渲染
sankey.render_notebook()
重點(diǎn)參數(shù)都位于set_options()中,更多個(gè)性化設(shè)置參考G2Plot2文檔:https://antv-g2plot.gitee.io/zh/examples/relation-plots/sankey#energy
個(gè)人感覺文檔比Pyecharts的文檔更適合人看,??API中羅列所有參數(shù)詳細(xì)說(shuō)明,設(shè)計(jì)指引中詳細(xì)說(shuō)明該圖表的使用場(chǎng)景、數(shù)據(jù)要求及設(shè)計(jì)建議,因?yàn)镚2Plot2目前還處于開發(fā)狀態(tài),有的圖表設(shè)計(jì)指引為空。
以修改color參數(shù)為例,
傳入色號(hào),
效果圖,
案例二、弦圖
G2Plot地址:https://antv-g2plot.gitee.io/zh/examples/relation-plots/chord#chord-population
PyG2Plot中實(shí)現(xiàn)和案例一一樣,直接貼上PyG2Plot實(shí)現(xiàn)代碼,
from?pyg2plot?import?Plot
data?=?[
??{?'source':?'北京',?'target':?'天津',?'value':?30?},
??{?'source':?'北京',?'target':?'上海',?'value':?80?},
??{?'source':?'北京',?'target':?'河北',?'value':?46?},
??{?'source':?'北京',?'target':?'遼寧',?'value':?49?},
??{?'source':?'北京',?'target':?'黑龍江',?'value':?69?},
??{?'source':?'北京',?'target':?'吉林',?'value':?19?},
??{?'source':?'天津',?'target':?'河北',?'value':?62?},
??{?'source':?'天津',?'target':?'遼寧',?'value':?82?},
??{?'source':?'天津',?'target':?'上海',?'value':?16?},
??{?'source':?'上海',?'target':?'黑龍江',?'value':?16?},
??{?'source':?'河北',?'target':?'黑龍江',?'value':?76?},
??{?'source':?'河北',?'target':?'內(nèi)蒙古',?'value':?24?},
??{?'source':?'內(nèi)蒙古','?target':?'北京',?'value':?32?},
]
chord?=?Plot("Chord")
chord.set_options({
????'height':400,
??'data':?data,
??'sourceField':?'source',
??'targetField':?'target',
??'weightField':?'value',
????'theme':?{
????'colors10':?['#FF6B3B',?'#626681',?'#FFC100',?'#9FB40F',?'#76523B',?'#DAD5B5',?'#0E8E89',?'#E19348',?'#F383A2',?'#247FEA']
}
})
chord.render_notebook()
案例三、面積圖
G2Plot地址:https://antv-g2plot.gitee.io/zh/examples/area/stacked#basic-slider
PyG2Plot實(shí)現(xiàn)代碼,
from?pyg2plot?import?Plot
import?requests
data?=?requests.get(
????"https://gw.alipayobjects.com/os/bmw-prod/b21e7336-0b3e-486c-9070-612ede49284e.json"
).json()
area?=?Plot("Area")
area.set_options({
????'height':?500,
????'width':?300,
????'data':?data,
????'xField':?'date',
????'yField':?'value',
????'seriesField':?'country',
????'slider':?{
????????'start':?0.1,
????????'end':?0.9,
????},
})
area.render_notebook()

更多案例
G2Plot包含大量案例,理論上PyG2Plot都可用,

總結(jié)
G2Plot還處于開發(fā)中,未來(lái)可期; G2Plot在 地理圖表方面很欠缺,官網(wǎng)幾乎沒有示例,看到的小伙伴可以私信一下~;和Pyechart/Echarts相比,PyG2Plot還是太稚嫩,所以,再見Pyechart、吊打Pyecharts蕓蕓還為時(shí)過(guò)早????
進(jìn)一步學(xué)習(xí)
https://github.com/hustcc/PyG2Plot
https://github.com/antvis/G2Plot
-END-
