1. 【Python】吊打pyecharts,又一超級(jí)棒的開(kāi)源可視化庫(kù)

        共 4057字,需瀏覽 9分鐘

         ·

        2021-03-27 11:06


        今天給大家推薦的這個(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,使用方法如下:

        1. Plot(plot_type: str): 獲取 Plot 對(duì)應(yīng)的類(lèi)實(shí)例。

        2. plot.set_options(options: object): 給圖表實(shí)例設(shè)置一個(gè) G2Plot 圖形的配置,文檔可以直接參考 G2Plot 官網(wǎng),未進(jìn)行任何二次數(shù)據(jù)結(jié)構(gòu)包裝。

        3. plot.render(path, env, **kwargs): 渲染出一個(gè) HTML 文件,同時(shí)可以傳入文件的路徑,以及 jinja2 env 和 kwargs 參數(shù)。

        4. plot.render_notebook(env, **kwargs): 將圖形渲染到 jupyter 的預(yù)覽。

        5. plot.render_jupyter_lab(env, **kwargs): 將圖形渲染到 jupyter lab 的預(yù)覽。

        6. plot.render_html(env, **kwargs): 渲染出 HTML 字符串,同時(shí)可以傳入 jinja2 env 和 kwargs 參數(shù)。

        7. 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)型的圖表,非常好用,效果圖如下:

        舉幾個(gè)例子,下面是分別是積圖、柱形圖、圖,可以看到可視化效果是非常棒的。
        更多圖表樣式的繪制可參考:https://github.com/hustcc/PyG2Plot/blob/main/docs/plot.md

        4、技術(shù)原理

        PyG2Plot 原理其實(shí)非常簡(jiǎn)單,其中借鑒了 pyecharts 的實(shí)現(xiàn),但是因?yàn)槲浵伣鸱?G2Plot 完全基于可視分析理論的配置式結(jié)構(gòu),所以封裝上比 pyecharts 簡(jiǎn)潔非常非常多。
        基本的原理,就是通過(guò) Python 語(yǔ)法提供 API,然后在調(diào)用 render 的時(shí)候,生成最終的 G2Plot HTML 文本,而針對(duì)不同的環(huán)境,生成的 HTML 稍有區(qū)別。
        • 針對(duì) HTML 生成,則直接使用正常的 html 模板,然后 script 引入 G2Plot 資源,生成 G2Plot 的 JavaScript 代碼,渲染即可

        • 針對(duì) Jupyter 環(huán)境,生成的的內(nèi)容中比較特殊的時(shí)候,使用 requireJS 去加載 G2Plot 資源,后續(xù)的邏輯一致

        這個(gè)原理可以理解是所有的語(yǔ)種封裝 JavaScript 模塊的統(tǒng)一做法。
        所以對(duì)于 PyG2Plot,核心文件是:
        • plot.py:提供了 PyG2Plot 的幾乎全部 API

        • engine.py:提供了渲染 HTML 的能力,其實(shí)是基于 jinja2 這個(gè)模板引擎實(shí)現(xiàn)的

        • templates:提供了所有的 jinja2 模板文件,對(duì)于模板怎么用,jinja2 的文檔是非常非常詳細(xì)的

        開(kāi)源項(xiàng)目地址:https://github.com/hustcc/PyG2Plot
        開(kāi)源項(xiàng)目作者:hustcc

        往期精彩回顧





        本站qq群851320808,加入微信群請(qǐng)掃碼:

        尾汁
        ?
        ?
        瀏覽 59
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 91h片| free×性护士vidos猛烈 | 极品女神无套呻吟啪啪 | 噜噜噜私人影院 | 在线电影一区 |