吊打pyecharts,又一超級(jí)棒的開(kāi)源可視化庫(kù)
大家好,我是老表。
今天給大家推薦的這個(gè)開(kāi)源項(xiàng)目是一個(gè)非常棒的可視化庫(kù)。
這個(gè)開(kāi)源項(xiàng)目就是:PyG2Plot 。
首先介紹下 G2Plot,G2Plot是螞蟻集團(tuán)開(kāi)源的一個(gè)基于圖表分類(lèi)學(xué)的可視分析圖表庫(kù),內(nèi)置 25+ 常見(jiàn)圖表類(lèi)型,簡(jiǎn)單、易用、并具備一定擴(kuò)展能力和組合能力的統(tǒng)計(jì)圖表庫(kù),基于圖形語(yǔ)法理論搭建而成。
再說(shuō) PyG2Plot,它是 @AntV/G2Plot 在 Python3 上的封裝,并且在數(shù)據(jù)結(jié)構(gòu)上,完全不做任何二次封裝,所以配置文檔上完全可以參考 G2Plot 官方文檔,從而降低自己維護(hù)成本,以及開(kāi)發(fā)者的學(xué)習(xí)上手成本。
安裝和使用都非常簡(jiǎn)單,如下:
1、安裝
pip install pyg2plot
2、使用方法
渲染成 HTML
from pyg2plot import Plot
line = Plot("Line")
line.set_options({
"data": [
{ "year": "1991", "value": 3 },
{ "year": "1992", "value": 4 },
{ "year": "1993", "value": 3.5 },
{ "year": "1994", "value": 5 },
{ "year": "1995", "value": 4.9 },
{ "year": "1996", "value": 6 },
{ "year": "1997", "value": 7 },
{ "year": "1998", "value": 9 },
{ "year": "1999", "value": 13 },
],
"xField": "year",
"yField": "value",
})
# 1. 渲染成 html 文件
line.render("plot.html")
# 2. 渲染成 html 字符串
line.render_html()

在 Jupyter 中使用
from pyg2plot import Plot
line = Plot("Line")
line.set_options({
"height": 400, # set a default height in jupyter preview
"data": [
{ "year": "1991", "value": 3 },
{ "year": "1992", "value": 4 },
{ "year": "1993", "value": 3.5 },
{ "year": "1994", "value": 5 },
{ "year": "1995", "value": 4.9 },
{ "year": "1996", "value": 6 },
{ "year": "1997", "value": 7 },
{ "year": "1998", "value": 9 },
{ "year": "1999", "value": 13 },
],
"xField": "year",
"yField": "value",
})
# 1. 渲染到 notebook
line.render_notebook()
# 2. 渲染到 jupyter lab
line.render_jupyter_lab()
目前 pyg2plot 只提供簡(jiǎn)單的一個(gè) API:Plot,使用方法如下:
Plot(plot_type: str): 獲取 Plot 對(duì)應(yīng)的類(lèi)實(shí)例。
plot.set_options(options: object): 給圖表實(shí)例設(shè)置一個(gè) G2Plot 圖形的配置,文檔可以直接參考 G2Plot 官網(wǎng),未進(jìn)行任何二次數(shù)據(jù)結(jié)構(gòu)包裝。
plot.render(path, env, **kwargs): 渲染出一個(gè) HTML 文件,同時(shí)可以傳入文件的路徑,以及 jinja2 env 和 kwargs 參數(shù)。
plot.render_notebook(env, **kwargs): 將圖形渲染到 jupyter 的預(yù)覽。
plot.render_jupyter_lab(env, **kwargs): 將圖形渲染到 jupyter lab 的預(yù)覽。
plot.render_html(env, **kwargs): 渲染出 HTML 字符串,同時(shí)可以傳入 jinja2 env 和 kwargs 參數(shù)。
plot.dump_js_options(env, **kwargs): 輸出 Javascript 的 option 配置結(jié)構(gòu),同時(shí)可以傳入 jinja2 env 和 kwargs 參數(shù),可以用于 Server 中的 HTTP 結(jié)構(gòu)返回?cái)?shù)據(jù)結(jié)構(gòu)。
3、支持圖表
pyg2plot 支持很多類(lèi)型的圖表,非常好用,效果圖如下:




4、技術(shù)原理
針對(duì) HTML 生成,則直接使用正常的 html 模板,然后 script 引入 G2Plot 資源,生成 G2Plot 的 JavaScript 代碼,渲染即可
針對(duì) Jupyter 環(huán)境,生成的的內(nèi)容中比較特殊的時(shí)候,使用 requireJS 去加載 G2Plot 資源,后續(xù)的邏輯一致
plot.py:提供了 PyG2Plot 的幾乎全部 API
engine.py:提供了渲染 HTML 的能力,其實(shí)是基于 jinja2 這個(gè)模板引擎實(shí)現(xiàn)的
templates:提供了所有的 jinja2 模板文件,對(duì)于模板怎么用,jinja2 的文檔是非常非常詳細(xì)的
--END--
掃碼即可加我微信
老表朋友圈經(jīng)常有贈(zèng)書(shū)/紅包福利活動(dòng)
新玩法,以后每篇技術(shù)文章,點(diǎn)贊超過(guò)100+,我將在個(gè)人視頻號(hào)直播帶大家一起進(jìn)行項(xiàng)目實(shí)戰(zhàn)復(fù)現(xiàn),快嘎嘎點(diǎn)贊吧!!!
直播將在我的視頻號(hào):老表Max 中開(kāi)展,掃上方二維碼添加我微信即可查看我的視頻號(hào)。
大家的 點(diǎn)贊、留言、轉(zhuǎn)發(fā)是對(duì)號(hào)主的最大支持。
學(xué)習(xí)更多: 整理了我開(kāi)始分享學(xué)習(xí)筆記到現(xiàn)在超過(guò)250篇優(yōu)質(zhì)文章,涵蓋數(shù)據(jù)分析、爬蟲(chóng)、機(jī)器學(xué)習(xí)等方面,別再說(shuō)不知道該從哪開(kāi)始,實(shí)戰(zhàn)哪里找了 “點(diǎn)贊”就是對(duì)博主最大的支持

