查看原文
其他

继Pyecharts之后,又一款国产可视化软件

pythonic生物人 pythonic生物人 2022-12-04

续前篇👉中国人自己的可视化利器:Pyecharts,本期分享另一个国人可视化工具PyG2Plot

介绍之前,先梳理下G2、G2Plot、PyG2Plot三者关系

  • G2:一套由蚂蚁集团数据可视化团队(AntV)开发,基于图层图形语法(the grammar of graphics,同ggplot2底层语法)的可视化底层高交互引擎;
  • G2Plot:基于G2封装,力求开箱即用、易于配置、具有良好交互体验的JavaScript统计图表库;
  • PyG2Plot:基于G2Plot封装的Python统计图表库,借鉴Pyecharts图表实现形式,但比Pyecharts更简练。总之,G2Plot之于PyG2Plot就如同Pyecharts之于Echarts。

安装

pip install pyg2plot

快速上手

PyG2Plot是完全基于G2Plot的封装,并且在数据结构上,完全不做任何二次封装,所以配置文档上完全可以参考G2Plot官方文档

下面用几个案例来说明如何参考G2Plot官方文档,使用PyG2Plot,

案例一、桑基图

G2Plot地址:https://antv-g2plot.gitee.io/zh/examples/relation-plots/sankey#energy将上图绘图数据和核心代码照抄到PyG2Plot中即可实现相同功能👇

#导入pyg2plot
from pyg2plot import Plot

# 获取上文G2Plot代码中的json数据,存入data
import requests
data = requests.get(
    "https://gw.alipayobjects.com/os/bmw-prod/fa3414cc-75ed-47b4-8306-f2ffe8c40127.json"
).json()


# 指定绘图类别Sankey
sankey = Plot("Sankey")


#下面set_options的{}中的代码完全照搬自G2Plot,关键字添加''即可,
sankey.set_options({
    'height':500,
    'data': data,
    'sourceField''source',
    'targetField''target',
    'weightField''value',
    'edgeStyle': {
        'fill''#ccc',
        'fillOpacity'0.4,
    },
})

# 图像渲染
sankey.render_notebook()

重点参数都位于set_options()中,更多个性化设置参考G2Plot2文档:https://antv-g2plot.gitee.io/zh/examples/relation-plots/sankey#energy个人感觉文档比Pyecharts的文档更适合人看,👆API中罗列所有参数详细说明,设计指引中详细说明该图表的使用场景、数据要求及设计建议,因为G2Plot2目前还处于开发状态,有的图表设计指引为空
以修改color参数为例,
传入色号,效果图,案例二、弦图

G2Plot地址:https://antv-g2plot.gitee.io/zh/examples/relation-plots/chord#chord-populationPyG2Plot中实现和案例一一样,直接贴上PyG2Plot实现代码,

from pyg2plot import Plot

data = [
  { 'source''北京''target''天津''value'30 },
  { 'source''北京''target''上海''value'80 },
  { 'source''北京''target''河北''value'46 },
  { 'source''北京''target''辽宁''value'49 },
  { 'source''北京''target''黑龙江''value'69 },
  { 'source''北京''target''吉林''value'19 },
  { 'source''天津''target''河北''value'62 },
  { 'source''天津''target''辽宁''value'82 },
  { 'source''天津''target''上海''value'16 },
  { 'source''上海''target''黑龙江''value'16 },
  { 'source''河北''target''黑龙江''value'76 },
  { 'source''河北''target''内蒙古''value'24 },
  { 'source''内蒙古',' target''北京''value'32 },
]

chord = Plot("Chord")

chord.set_options({
    'height':400,
  'data': data,
  'sourceField''source',
  'targetField''target',
  'weightField''value',
    'theme': {
    'colors10': ['#FF6B3B''#626681''#FFC100''#9FB40F''#76523B''#DAD5B5''#0E8E89''#E19348''#F383A2''#247FEA']
}
})

chord.render_notebook()

案例三、面积图

G2Plot地址:https://antv-g2plot.gitee.io/zh/examples/area/stacked#basic-sliderPyG2Plot实现代码,

from pyg2plot import Plot
import requests

data = requests.get(
    "https://gw.alipayobjects.com/os/bmw-prod/b21e7336-0b3e-486c-9070-612ede49284e.json"
).json()

area = Plot("Area")

area.set_options({
    'height'500,
    'width'300,
    'data': data,
    'xField''date',
    'yField''value',
    'seriesField''country',
    'slider': {
        'start'0.1,
        'end'0.9,
    },
})

area.render_notebook()

更多案例

G2Plot包含大量案例,理论上PyG2Plot都可用,


总结

  • G2Plot还处于开发中,未来可期;
  • G2Plot在地理图表方面很欠缺,官网几乎没有示例,看到的小伙伴可以私信一下~;
  • 和Pyechart/Echarts相比,PyG2Plot还是太稚嫩,所以,再见Pyechart、吊打Pyecharts芸芸还为时过早😓😓

进一步学习

https://github.com/hustcc/PyG2Plot
https://github.com/antvis/G2Plot


-END-

🔍精彩推荐

Python可视化

Python入门及提高

统计学入门及提高

R可视化

关注「pythonic生物人」

加微信群:扫码👇“备注学习

日拱一卒无有尽,功不唐捐终入海!「❤️动手点个赞,下期见~」       


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存