0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個非常棒的可視化庫:PyG2Plot

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-21 11:32 ? 次閱讀

給大家推薦的這個開源項目是一個非常棒的可視化庫 -- PyG2Plot 。

PyG2Plot 可視化

這個Python可視化新秀,在GitHub上是這樣介紹的:

PyG2Plot 是@AntV/G2PlotPython3 上的封裝。G2Plot 是一套簡單、易用、并具備一定擴展能力和組合能力的統(tǒng)計圖表庫,基于圖形語法理論搭建而成。

不過研究PyG2Plot還得先從G2開始講,它是螞蟻金服開源一個基于圖形語法,面向數(shù)據(jù)分析的統(tǒng)計圖表引擎。后來又在其基礎(chǔ)上,封裝出業(yè)務(wù)上常用的統(tǒng)計圖表庫——G2Plot

圖片

不過現(xiàn)在Python這么熱,幾乎每一個nb的前端可視化庫,最終都會被用python開發(fā)一套生成相應html的庫!它也不例外,封裝出了Python可視化庫——PyG2Plot。

在GitHub上,也提供了一張示例圖,我對右下角的散點圖比較感興趣。

圖片

結(jié)果興致勃勃地去看示例,這簡直買家秀與賣家秀啊!

圖片

我不管,我就要右邊那個

自己動手,豐衣足食

看來還是需要自己動手,那就先安裝PyG2Plot庫吧

pip install pyg2plot

目前目前 pyg2plot 只提供簡單的一個 API,只列出需要的參數(shù)

  • Plot
  1. Plot(plot_type: str) : 獲取 Plot 對應的類實例。
  2. plot.set_options(options: object) : 給圖表實例設(shè)置一個 G2Plot 圖形的配置。
  3. *plot.render(path, env, *kwargs) : 渲染出一個 HTML 文件,同時可以傳入文件的路徑,以及 jinja2 env 和 kwargs 參數(shù)。
  4. *plot.render_notebook(env, *kwargs) : 將圖形渲染到 jupyter 的預覽。

于是我們可以先導入Plot方法

from pyg2plot import Plot

我們要畫散點圖

scatter = Plot("Scatter")

下一步就是要獲取數(shù)據(jù)和設(shè)置參數(shù)plot.set_options(),這里獲取數(shù)據(jù)直接利用requset解析案例json,而參數(shù)讓我在后面一一道來:

import requests

#請求地址
url = "https://gw.alipayobjects.com/os/bmw-prod/0b37279d-1674-42b4-b285-29683747ad9a.json"

#發(fā)送get請求
a = requests.get(url)

#獲取返回的json數(shù)據(jù),并賦值給data
data = a.json()

圖片

成功獲取解析好的對象集合數(shù)據(jù)。

下面是對著參數(shù),一頓操作猛如虎:

scatter.set_options(
{
    'appendPadding': 30,
    'data': data,
    'xField': 'change in female rate',
    'yField': 'change in male rate',
    'sizeField': 'pop',
    'colorField': 'continent',
    'color': ['#ffd500', '#82cab2', '#193442', '#d18768','#7e827a'],
    'size': [4, 30],
    'shape': 'circle',
    'pointStyle':{'fillOpacity': 0.8,'stroke': '#bbb'},
    'xAxis':{'line':{'style':{'stroke': '#aaa'}},},
    'yAxis':{'line':{'style':{'stroke': '#aaa'}},},
    'quadrant':{
        'xBaseline': 0,
        'yBaseline': 0,
        'labels': [
        {'content': 'Male decrease,nfemale increase'},
        {'content': 'Female decrease,nmale increase'},
        {'content': 'Female & male decrease'},
        {'content': 'Female &n male increase'}, ],},
})

如果在Jupyter notebook中預覽的話,則執(zhí)行下方語句

scatter.render_notebook()

如果想渲染出完整的html的話,則執(zhí)行下方語句

scatter.render("散點圖.html")

看一下成果吧

圖片

參數(shù)解析&完整代碼

各位看官,這塊可能比較無聊,可以直接劃到文末或者點擊收藏。

主要還是詳解一下剛才scatter.set_options()里的參數(shù),方便大家后續(xù)自己改造!

分成幾個部分一點一點解釋:

參數(shù)解釋

'appendPadding': 30, #①
'data': data, #②
'xField': 'change in female rate', #③
'yField': 'change in male rate',

①圖表在上右下左的間距,加不加這個參數(shù)具體看下圖

圖片

②設(shè)置圖表數(shù)據(jù)源(其中data在前面已經(jīng)賦值了),這里的數(shù)據(jù)源為對象集合,例如:[{ time: '1991',value: 20 }, { time: '1992',value: 20 }]。

xFieldyField這兩個參數(shù)分別是橫/縱向的坐標軸對應的字段。

參數(shù)解釋

'sizeField': 'pop', #④
'colorField': 'continent', #⑤
'color': ['#ffd500', '#82cab2', '#193442', '#d18768','#7e827a'], #⑥
'size': [4, 30], #⑦
'shape': 'circle', #⑧

④指定散點大小對應的字段名,我們用的pop(人口)字段。

⑤指定散點顏色對應的字段名,我們用的continent(洲)字段。

圖片

⑥設(shè)置散點的顏色,指定了系列色值。

⑦設(shè)置散點的大小,可以指定大小數(shù)組 [minSize, maxSize]

⑧設(shè)置點的形狀,比如ciclesquare

參數(shù)解釋

'pointStyle':{'fillOpacity': 0.8,'stroke': '#bbb'}, #⑨
'xAxis':{'line':{'style':{'stroke': '#aaa'}},}, #⑩
'yAxis':{'line':{'style':{'stroke': '#aaa'}},},

pointStyle是指折線樣式,不過在散點圖里,指的是散點的描邊。另外fillOpacity是設(shè)置透明度,stroke是設(shè)置描邊顏色。

圖片

⑩這里只是設(shè)置了坐標軸線的顏色。

參數(shù)解釋

'quadrant':{
    'xBaseline': 0,
    'yBaseline': 0,
    'labels': [
    {'content': 'Male decrease,nfemale increase'},
    {'content': 'Female decrease,nmale increase'},
    {'content': 'Female & male decrease'},
    {'content': 'Female &n male increase'}, ],},

quadrant是四象限組件,具體細分配置如下:

細分配置功能描述
xBaselinex 方向上的象限分割基準線,默認為 0
yBaseliney 方向上的象限分割基準線,默認為 0
labels象限文本配置

PyG2Plot的介紹文檔還不完善,上文中的很多參數(shù)是摸索的,大家作為參考就好。

圖片

PyG2Plot 原理其實非常簡單,其中借鑒了 pyecharts 的實現(xiàn),但是因為螞蟻金服的 G2Plot 完全基于可視分析理論的配置式結(jié)構(gòu),所以封裝上比 pyecharts 簡潔非常非常多。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7035

    瀏覽量

    89045
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1835

    瀏覽量

    32227
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1194

    瀏覽量

    20944
  • PyG2Plot
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    23
收藏 人收藏

    評論

    相關(guān)推薦

    可視化MES系統(tǒng)軟件

    進行篩選、分析和控制,因此,利用可視化技術(shù)將其轉(zhuǎn)化為圖表、圖像和表格等形式展示,便于管理者有效分析、控制和管理。(2可視化交互方面。車間的裝配質(zhì)量管理系統(tǒng)和過程控制管理系統(tǒng)交互性差,只能管理者單方面
    發(fā)表于 11-30 19:55

    如何把AD中非可視化區(qū)域物件移到可視化區(qū)域?

    AD中非可視化區(qū)域物件怎么移到可視化區(qū)域???
    發(fā)表于 09-10 05:36

    基于STM的可視化門禁系統(tǒng)

    基于STM的可視化門禁系統(tǒng)
    發(fā)表于 03-07 09:49

    基于stm的可視化門禁系統(tǒng)

    基于stm的可視化門禁系統(tǒng)
    發(fā)表于 03-11 09:23

    15玩轉(zhuǎn)數(shù)據(jù)可視化的技巧

    高手總結(jié)的15技巧,讓你輕松玩轉(zhuǎn)數(shù)據(jù)可視化!
    發(fā)表于 05-22 09:59

    Python數(shù)據(jù)可視化

    Python數(shù)據(jù)可視化:網(wǎng)易云音樂歌單
    發(fā)表于 07-19 08:30

    三維可視化的應用和優(yōu)勢

    ?! ∪缭O(shè)備出現(xiàn)問題,可以更加直觀的通過三維可視化運維系統(tǒng)發(fā)現(xiàn),因為會在系統(tǒng)內(nèi)出現(xiàn)數(shù)據(jù)異常,甚至可以通過設(shè)置相對的閾值來進行提醒,使得設(shè)備出現(xiàn)問題后能夠第時間發(fā)現(xiàn),減少維修時間和開支。提升設(shè)備的工作效率
    發(fā)表于 12-02 11:52

    常見的幾種可視化介紹

    說說常見的幾種可視化、信息可視化信息可視化就是對抽象數(shù)據(jù)進行直觀視覺呈現(xiàn)的研究,抽象數(shù)據(jù)既包含數(shù)值數(shù)據(jù),也包含非數(shù)值數(shù)據(jù)如文本信息、地圖信息等,它們可通過利用圖形圖像處理、人機交互、
    發(fā)表于 07-12 07:49

    Keras可視化神經(jīng)網(wǎng)絡(luò)架構(gòu)的4種方法

    解模型結(jié)構(gòu)、激活函數(shù)、模型參數(shù)形狀(神經(jīng)元數(shù)量)等keras 中有些現(xiàn)成的包可以創(chuàng)建我們的神經(jīng)網(wǎng)絡(luò)模型的可視化表示。前三包可以在模型訓練之前使用(只需要定義和編譯模型);但是Tensor
    發(fā)表于 11-02 14:55

    經(jīng)驗分享|BI數(shù)據(jù)可視化報表布局——容器

    設(shè)置。2、放大容器點擊右側(cè)的【專有】,將看到【允許放大容器】的開關(guān)。這是什么功能?關(guān)閉該開關(guān),表示可以放大容器以及容器內(nèi)的圖表;開啟
    發(fā)表于 03-15 17:10

    keras可視化介紹

    (LR), 縱向顯示(TB) expand_nested=False,# 是否將嵌套模型擴展到聚類中 dpi=96 )4 訓練歷史可視化 Keras Model 上的 fit() 方法返回
    發(fā)表于 08-18 07:53

    Pyecharts制作可視化大屏詳解

    前兩天發(fā)了篇《用Python制作可視化大屏,特簡單!》,留言區(qū)非常火爆,發(fā)現(xiàn)大家都對可視化部分非常感興趣。 而恰好大屏
    的頭像 發(fā)表于 10-26 09:42 ?3561次閱讀
    Pyecharts制作<b class='flag-5'>可視化</b>大屏詳解

    使用Python來收集、處理和可視化人口數(shù)據(jù)

    數(shù)據(jù)分析和可視化: pandas:提供高性能、易用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具的。 requests:
    的頭像 發(fā)表于 06-21 17:08 ?1401次閱讀
    使用Python來收集、處理和<b class='flag-5'>可視化</b>人口數(shù)據(jù)

    分享10適用于多個學科的Python數(shù)據(jù)可視化

    matplotlib 是Python可視化程序的泰斗。經(jīng)過十幾年它任然是Python使用者最常用的畫圖庫。它的設(shè)計和在1980年代被設(shè)計的商業(yè)程序語言MATLAB非常接近。
    的頭像 發(fā)表于 08-14 10:40 ?803次閱讀
    分享10<b class='flag-5'>個</b>適用于多個學科的Python數(shù)據(jù)<b class='flag-5'>可視化</b><b class='flag-5'>庫</b>

    Altair:漂亮易用的數(shù)據(jù)可視化

    Altair 是基于Jupyter Notebook的強大可視化。它提供了強大而簡潔的可視化語法,使我們能夠快速構(gòu)建各種統(tǒng)計
    的頭像 發(fā)表于 10-21 10:43 ?927次閱讀
    Altair:<b class='flag-5'>一</b><b class='flag-5'>個</b>漂亮易用的數(shù)據(jù)<b class='flag-5'>可視化</b><b class='flag-5'>庫</b>