<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          螞蟻開源,又一超棒的 Python 開源可視化庫

          共 4822字,需瀏覽 10分鐘

           ·

          2022-06-25 09:18

          人生苦短,快學(xué)Python!

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

          PyG2Plot 可視化

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

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

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

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

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

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

          我不管,我就要右邊那個??

          自己動手,豐衣足食

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

          pip install pyg2plot

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

          • Plot
          1. Plot(plot_type: str): 獲取 Plot 對應(yīng)的類實例。
          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 的預(yù)覽。

          于是我們可以先導(dǎo)入Plot方法

          from pyg2plot import Plot

          我們要畫散點(diǎn)圖

          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': [430],
              '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中預(yù)覽的話,則執(zhí)行下方語句

          scatter.render_notebook()

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

          scatter.render("散點(diǎn)圖.html")

          看一下成果吧

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

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

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

          分成幾個部分一點(diǎn)一點(diǎn)解釋:

          參數(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ù)分別是橫/縱向的坐標(biāo)軸對應(yīng)的字段。

          參數(shù)解釋

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

          ④指定散點(diǎn)大小對應(yīng)的字段名,我們用的pop(人口)字段。

          ⑤指定散點(diǎn)顏色對應(yīng)的字段名,我們用的continent(洲)字段。

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

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

          ⑧設(shè)置點(diǎn)的形狀,比如cicle、square

          參數(shù)解釋

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

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

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

          參數(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是四象限組件,具體細(xì)分配置如下:

          細(xì)分配置功能描述
          xBaselinex 方向上的象限分割基準(zhǔn)線,默認(rèn)為 0
          yBaseliney 方向上的象限分割基準(zhǔn)線,默認(rèn)為 0
          labels象限文本配置

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

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

          我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關(guān)注Python實用寶典。

          有任何問題,可以在公眾號后臺回復(fù):加群,回答相應(yīng)紅字驗證信息,進(jìn)入互助群詢問。

          原創(chuàng)不易,希望你能在下面點(diǎn)個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!

          點(diǎn)擊下方閱讀原文可獲得更好的閱讀體驗

          Python實用寶典 (pythondict.com)
          不只是一個寶典
          歡迎關(guān)注公眾號:Python實用寶典

          瀏覽 32
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品 一道在线 | 亚洲娱乐成人网 | 色图国产| 台湾长腿美人ladyyuan | 国产剧情日韩无码 |