【Python】吊打pyecharts,又一超級(jí)棒的開源可視化庫

今天給大家推薦的這個(gè)開源項(xiàng)目是一個(gè)非常棒的可視化庫。
這個(gè)開源項(xiàng)目就是:PyG2Plot 。
首先介紹下 G2Plot,G2Plot是螞蟻集團(tuán)開源的一個(gè)基于圖表分類學(xué)的可視分析圖表庫,內(nèi)置 25+ 常見圖表類型,簡單、易用、并具備一定擴(kuò)展能力和組合能力的統(tǒng)計(jì)圖表庫,基于圖形語法理論搭建而成。
再說 PyG2Plot,它是 @AntV/G2Plot 在 Python3 上的封裝,并且在數(shù)據(jù)結(jié)構(gòu)上,完全不做任何二次封裝,所以配置文檔上完全可以參考 G2Plot 官方文檔,從而降低自己維護(hù)成本,以及開發(fā)者的學(xué)習(xí)上手成本。
安裝和使用都非常簡單,如下:
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 只提供簡單的一個(gè) API:Plot,使用方法如下:
Plot(plot_type: str): 獲取 Plot 對(duì)應(yīng)的類實(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 支持很多類型的圖表,非常好用,效果圖如下:




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ì)的
往期精彩回顧
本站qq群851320808,加入微信群請(qǐng)掃碼:

