G2 是螞蟻金服開源一個基於圖形語法,面向數據分析的統計圖表引擎。G2Plot 是在 G2 基礎上,屏蔽復雜概念的前提下,保留 G2 強大圖形能力,封裝出業務上常用的統計圖表庫。
G2Plot 是一個基於配置、體驗優雅、面向數據分析的統計圖表庫,幫助開發者以最小成本繪制高質量統計圖表。
那么對於很多 Python 語言環境的同學,如何使用 G2Plot 在進行數據分析之后的可視化呢?也就是如何將 G2Plot 和 Python 結合起來?
這里給出的就是基於 G2Plot 封裝出 PyG2Plot
如何使用
pip install pyg2plot
1. 渲染出完整的 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. render html file named plot.html line.render("plot.html") # 2. render html string line.render_html()
這種情況可以用於:
- 服務端 html 直出的場景
- 生成可交互可視化分享
- Excel 等工具嵌入的場景
2. 在 Jupyter notebook 中預覽
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", }) line.render_notebook()
在我們做數據分析教程的過程中,可以將我們的數據使用 PyG2Plot 進行可視化並預覽出來,十分方便!

開發原理
PyG2Plot 原理其實非常簡單,其中借鑒了 pyecharts 的實現,但是因為螞蟻金服的 G2Plot 完全基於可視分析理論的配置式結構,所以封裝上比 pyecharts 簡潔非常非常多。
基本的原理,就是通過 Python 語法提供 API,然后再調用 render 的時候,生成最終的 G2Plot HTML 文本,而針對不同的環境,生成的 HTML 稍有區別。
所以核心文件是:
- plot.py:提供了 PyG2Plot 的幾乎全部 API
- engine.py:提供了渲染 HTML 的能力,其實是基於 jinjia2 這個模板引擎實現的,基本內容很少
- templates:提供了所有的 jinjia2 模板文件,對於模板怎么用,jinjia2 的文檔是非常非常詳細的
使用文檔
PyG2Plot 提供的 API 非常簡單,使用上:
# 1. import from pyg2plot import Plot # 2. use a plot line = Plot("Line") # 3. set_options use G2Plot line.set_options({ data, ... }) # 4. render line.render_notebook()
而這其中 set_options API 的參數,是完全沿用 G2Plot 的配置文檔,支持所有的圖表、功能、特性,概念和結構上不作任何修改。

最后
G2Plot和PyG2Plot的地址
https://github.com/hustcc/PyG2Plot