python 可视化库PyG2Plot的使用
作者:hustcc 发布时间:2022-10-14 05:22:17
G2 是蚂蚁金服开源一个基于图形语法,面向数据分析的统计图表引擎。G2Plot 是在 G2 基础上,屏蔽复杂概念的前提下,保留 G2 强大图形能力,封装出业务上常用的统计图表库。
G2Plot 是一个基于配置、体验优雅、面向数据分析的统计图表库,帮助开发者以最小成本绘制高质量统计图表。
那么对于很多 Python 语言环境的同学,如何使用 G2Plot 在进行数据分析之后的可视化呢?也就是
如何将 G2Plot 和 Python 结合起来?这里给出的就是基于 G2Plot 封装出 PyG2Plot,欢迎帮我充一下 Star。
**
如何使用
$ pip install pyg2plot
主要有 2 种使用方式(能力扩充中,欢迎提 issue)
1. 渲染出完整的 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. render html file named plot.html
line.render("plot.html")
# 2. render html string
line.render_html()
这种情况可以用于:
服务端 html 直出的场景
生成可交互可视化分享
Excel 等工具嵌入的场景
2. 在 Jupyter notebook 中预览
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",
})
line.render_notebook()
在我们做数据分析教程的过程中,可以将我们的数据使用 PyG2Plot 进行可视化并预览出来,十分方便!
开发原理
PyG2Plot 原理其实非常简单,其中借鉴了 pyecharts 的实现,但是因为蚂蚁金服的 G2Plot 完全基于可视分析理论的配置式结构,所以封装上比 pyecharts 简洁非常非常多。
基本的原理,就是通过 Python 语法提供 API,然后再调用 render 的时候,生成最终的 G2Plot HTML 文本,而针对不同的环境,生成的 HTML 稍有区别。
所以核心文件是:
plot.py: 提供了 PyG2Plot 的几乎全部 API
engine.py:提供了渲染 HTML 的能力,其实是基于 jinjia2 这个模板引擎实现的,基本内容很少
templates:提供了所有的 jinjia2 模板文件,对于模板怎么用,jinjia2 的文档是非常非常详细的
使用文档
PyG2Plot 提供的 API 非常简单,使用上:
# 1. import
from pyg2plot import Plot
# 2. use a plot
line = Plot("Line")
# 3. set_options use G2Plot
line.set_options({ data, ... })
# 4. render
line.render_notebook()
而这其中 set_options API 的参数,是完全沿用 G2Plot 的配置文档,支持所有的图表、功能、特性,概念和结构上不作任何修改。
最后
欢迎给个 Star 🙇♂️
AntV G2Plot
PyG2Plot
最后有任何的特性支持和 bug 反馈,欢迎 issue 或者 PR。
来源:https://segmentfault.com/a/1190000039044356


猜你喜欢
- Python中and、or是Python中的逻辑运算符,它们的用法如何呢?and:在Python 中,and 和 or 执行布尔逻辑演算,如
- 判断汉字if (System.Text.Encoding.GetEncoding("gb2312").GetBytes(
- 本文实例为大家分享了Python曲线拟合的最小二乘法,供大家参考,具体内容如下模块导入import numpy as npimport ga
- 本次爬虫思路最最重要的是分析信息接口!!!1. 获取url2. 通过请求拿到响应3. 处理反爬4. 提取信息5. 保存内容本次操练网页htt
- 1. 数字转换为字符串 a. 要把一个数字转换为字符串,只要给它添加一个空的字符串即可: var n = 100; var n_as_str
- 本文实例讲述了js实现向右横向滑出的二级菜单效果。分享给大家供大家参考。具体如下:这是一个网页上的横向滑出二级菜单,菜单是竖向排列的,但二级
- 前言相信做自动化测试的同学一定不可忽视的问题就是验证码,他几乎是一个网站登录的标配,当然,我一般是不建议在这上面浪费时间去做识别的。举个例子
- Node.js uses an event-driven, non-blocking I/O model that makes it lig
- 1,概念及原理:膨胀(Dilating) (或)(1)将图像 A 与任意形状的内核 (B),通常为正方形或圆形,进行卷积。(2)内核 B 有
- 场景产品中有一张图片表,数据量将近100万条,有一条相关的查询语句,由于执行频次较高,想针对此语句进行优化表结构很简单,主要字段:user_
- 一、环境win10、Python3.6、OpenCV3.x;编译器:pycharm5.0.3二、实现目标根据需要追踪的物体颜色,设定阈值,在
- 本文实例讲述了PHP判断密码强度的方法。分享给大家供大家参考,具体如下:一、php页面$score = 0;if(!empty($_GET[
- 今早开机发现,打开SQL Server 2008 的 SQL Server Management Studio,输入sa的密码发现,无法登陆
- 一、事务 mysql事务是用于处理操作量大、复杂性高的数据1. 事务特性
- 一、函数概述简单来说 函数 就是自己定义的一段 小程序 方便自己调取使用def 用来定义函数的关键字 也就是这个函数的名字函数运行到retu
- redis相信大家都很熟悉了,和memcached一样是一个高性能的key-value数据库,至于什么是缓存服务器,度娘都有很明白的介绍了,
- 1. 模拟场景实现需求为玩家拥有多个英雄,在部署好英雄之后,只用点击进攻,不用关心每个英雄具体自己的攻击手段!2099/12/29 14:1
- 网站开发时经常需要在某个页面需要实现对大量图片的浏览,如果考虑流量的话,大可以像pconline一样每个页面只显示一张图片,让用户每看一张图
- 本文主要介绍我在利用Django写文章时,采用的注册方法。首先说一下整体逻辑思路:•处理用户注册数据,•产生token,生成验证URL,•发
- /*Bresenham画圆算法*/var arc = function(x0,y0,r){/*起点坐标x0,y