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

来源:pythonic生物人

06b1753b6a39aa600144b5fbbeb905ac.png本期分享一个国人可视化工具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#energyae63387e4441b24b61cb51685a600f0b.png将上图绘图数据和核心代码照抄到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()

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

G2Plot地址:https://antv-g2plot.gitee.io/zh/examples/relation-plots/chord#chord-population4e9ec29725dcd61a3e27e8e15eb8d3c0.pngPyG2Plot中实现和案例一一样,直接贴上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()

e8e7b4e4f807b0d2f24d3e7e5ffc4f5b.gif案例三、面积图

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

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()
92c53205d5108b7b86f05a4df66a4743.gif

更多案例

G2Plot包含大量案例,理论上PyG2Plot都可用,72b27dc6ec66a476082ada2a3e80078b.gif91acd79952849d94879bf0b090af9a84.gif


总结

  • G2Plot还处于开发中,未来可期;

  • G2Plot在地理图表方面很欠缺,官网几乎没有示例,看到的小伙伴可以私信一下~;

  • 和Pyechart/Echarts相比,PyG2Plot还是太稚嫩,所以,再见Pyechart、吊打Pyecharts芸芸还为时过早😓😓

进一步学习

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

-------- End --------

29c3de4890efa10dfc1b5d9df35d972f.png
精选资料

回复关键词,获取对应的资料:

关键词资料名称
600《Python知识手册》
md《Markdown速查表》
time《Python时间使用指南》
str《Python字符串速查表》
pip《Python:Pip速查表》
style《Pandas表格样式配置指南》
mat《Matplotlib入门100个案例》
px《Plotly Express可视化指南》
精选视频

可视化: Plotly Express

财经: Plotly在投资领域的应用 | 绘制K线图表

排序算法: 汇总 | 冒泡排序 | 选择排序 | 快速排序 | 归并排序 | 堆排序 | 插入排序 | 希尔排序 | 计数排序 | 桶排序 | 基数排序

6cabdfe5d55995833e43497a407cf4a8.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值