大家好,今天给大家推荐的这个开源项目是一个非常棒的可视化库:PyG2Plot。

首先介绍下 G2Plot,G2Plot是蚂蚁集团开源的一个基于图表分类学的可视分析图表库,内置 25+ 常见图表类型,简单、易用、并具备一定扩展能力和组合能力的统计图表库,基于图形语法理论搭建而成。

再说 PyG2Plot,它是 @AntV/G2Plot 在 Python3 上的封装,并且在数据结构上,完全不做任何二次封装,所以配置文档上完全可以参考 G2Plot 官方文档,从而降低自己维护成本,以及开发者的学习上手成本。喜欢本文记得收藏、点赞、关注。

【注】完整代码、资料、技术交流,文末获取

安装和使用都非常简单,如下:

1、安装

pip install pyg2plot

2、使用方法

渲染成 HTML

from pyg2plot import Plotline = 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. 渲染成 html 文件
line.render("plot.html")
# 2. 渲染成 html 字符串
line.render_html()

在 Jupyter 中使用

from pyg2plot import Plotline = 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",
})# 1. 渲染到 notebook
line.render_notebook()# 2. 渲染到 jupyter lab
line.render_jupyter_lab()

目前 pyg2plot 只提供简单的一个 API:Plot,使用方法如下:

  1. Plot(plot_type: str): 获取 Plot 对应的类实例。

  2. plot.set_options(options: object): 给图表实例设置一个 G2Plot 图形的配置,文档可以直接参考 G2Plot 官网,未进行任何二次数据结构包装。

  3. plot.render(path, env, **kwargs): 渲染出一个 HTML 文件,同时可以传入文件的路径,以及 jinja2 env 和 kwargs 参数。

  4. plot.render_notebook(env, **kwargs): 将图形渲染到 jupyter 的预览。

  5. plot.render_jupyter_lab(env, **kwargs): 将图形渲染到 jupyter lab 的预览。

  6. plot.render_html(env, **kwargs): 渲染出 HTML 字符串,同时可以传入 jinja2 env 和 kwargs 参数。

  7. plot.dump_js_options(env, **kwargs): 输出 Javascript 的 option 配置结构,同时可以传入 jinja2 env 和 kwargs 参数,可以用于 Server 中的 HTTP 结构返回数据结构。

3、支持图表

pyg2plot 支持很多类型的图表,非常好用,效果图如下:

举几个例子,下面是分别是面积图、柱形图、双轴图,可以看到可视化效果是非常棒的。

更多图表样式的绘制可参考:https://github.com/hustcc/PyG2Plot/blob/main/docs/plot.md

4、技术原理

PyG2Plot 原理其实非常简单,其中借鉴了 pyecharts 的实现,但是因为蚂蚁金服的 G2Plot 完全基于可视分析理论的配置式结构,所以封装上比 pyecharts 简洁非常非常多。

基本的原理,就是通过 Python 语法提供 API,然后在调用 render 的时候,生成最终的 G2Plot HTML 文本,而针对不同的环境,生成的 HTML 稍有区别。

  • 针对 HTML 生成,则直接使用正常的 html 模板,然后 script 引入 G2Plot 资源,生成 G2Plot 的 JavaScript 代码,渲染即可

  • 针对 Jupyter 环境,生成的的内容中比较特殊的时候,使用 requireJS 去加载 G2Plot 资源,后续的逻辑一致

这个原理可以理解是所有的语种封装 JavaScript 模块的统一做法。

所以对于 PyG2Plot,核心文件是:

  • plot.py:提供了 PyG2Plot 的几乎全部 API

  • engine.py:提供了渲染 HTML 的能力,其实是基于 jinja2 这个模板引擎实现的

  • templates:提供了所有的 jinja2 模板文件,对于模板怎么用,jinja2 的文档是非常非常详细的

开源项目地址:https://github.com/hustcc/PyG2Plot

推荐文章

  • 李宏毅《机器学习》国语课程(2022)来了

  • 有人把吴恩达老师的机器学习和深度学习做成了中文版

  • 上瘾了,最近又给公司撸了一个可视化大屏(附源码)

  • 如此优雅,4款 Python 自动数据分析神器真香啊

  • 梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学

  • 香的很,整理了20份可视化大屏模板

技术交流

完整代码、数据获取,可以找我来要

技术交流、求职内推、干货汇总、与 3000+来自阿里、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

目前开通了技术交流群,群友已超过3000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

吊打pyecharts,又一超级棒的开源可视化库相关推荐

  1. 【Python】吊打pyecharts,又一超级棒的开源可视化库

    今天给大家推荐的这个开源项目是一个非常棒的可视化库. 这个开源项目就是:PyG2Plot . 首先介绍下 G2Plot,G2Plot是蚂蚁集团开源的一个基于图表分类学的可视分析图表库,内置 25+ 常 ...

  2. 一款基于java的超级棒的开源支付系统(用来毕设也不错),国内首款开源的互联网支付系统

    最近年初刚开始了,小编想着应该会有很多公司开始冲一波今年的业绩,既然是冲业绩,就离不开我们的支付系统,所以小编就去网上给大家找到了一款超级棒的开源支付系统!帮助大家从头到尾了解清楚这其中的逻辑! 所以 ...

  3. 12 款最棒 Vue 开源 UI 库测评 - 特别针对国内使用场景推荐

    本文首发:<12 款最棒 Vue 开源 UI 库测评 - 特别针对国内使用场景推荐> Vue 3 发布已经有一段时间了,就在刚刚过去的一年,各大组件库.框架纷纷对 Vue 3 做了优化和支 ...

  4. dtreeviz:一款超级棒的决策树可视化和模型可解释性工具

    决策树是梯度提升机和随机森林的基本构建块,在学习这些模型的工作原理和模型可解释性时,可视化决策树是一个非常有帮助.不过,当前的可视化包还很初级,对新手没有多少帮助. 最近逛 Github 时,发现一款 ...

  5. [必藏]Android 最棒的开源集合库

    下边是个人的收藏,包含国内.国外的最棒的开源集合,强烈建议收藏 Android开源项目分类汇总 | 查看 包括内容: Android开源项目第一篇--个性化控件(View)篇 包括ListView.A ...

  6. oracle 11g RAC无法采用deinstall自动卸载grid,手动卸载,超级棒!

    oracle 11g RAC无法采用deinstall自动卸载grid,手动卸载,超级棒! 1.root用户下计入到grid用户的ORACLE_HOME [root]# cd /u01/app/11. ...

  7. 超级棒的一个DP问题详解(入门)

    超级棒的一个DP问题详解(入门) 只要耐心看肯定可以理解的~动态规划问题故事描述~ 通过金矿模型介绍动态规划 附上原文地址: http://www.cnblogs.com/sdjl/articles/ ...

  8. java 数据分析库_超级好用的 Java 数据可视化库:Tablesaw

    本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和使用 Tablesaw 项目.示例均在 Windows 操作系统下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出 ...

  9. Moo.fx 超级轻量级的 javascript 特效库

    Moo.fx是 一个超级轻量级的 javascript 特效库(7k),能够与 prototype.js 或mootools 框架一起使用.它非常快.易于使用.跨浏览器.符合标准,提供控制和修改任何 ...

最新文章

  1. nacos config基本使用
  2. 写个Vue小组件,图片滚动
  3. linux图形界面 革命,Windows 95带来的革命
  4. java applet怎么传参,使用不带浏览器的参数运行java applet
  5. ASP.NET 创建网站地图
  6. 人工智能之-产生式系统
  7. 将pdf文件缩到最小的小技巧
  8. Promethues原理详解
  9. 程序后台运行没问题,但是sql没有执行,查询数据为空
  10. UML中各种线条关系记忆技巧
  11. 三子棋 Tic-Tac-Toe
  12. Object 的 equal() 、hashCode()方法说起
  13. Java 爬虫微信公众号详情,并且破解微信图片跨域问题
  14. 为什么推广效果无法提升?
  15. css ime-mode控制输入全角和半角
  16. 服务器电脑主板维修,电脑服务器主板维修
  17. python 将图片转换成像素画_Python 骚操作之图片转字符画
  18. >> 读书记录_2022
  19. havc是什么意思_HAVC(havc什么意思)
  20. vue知识点总结 --- vuex热更替

热门文章

  1. 实战:k8s之亲合性调度-2022.2.18
  2. PHPMailer 腾讯企业邮箱
  3. 【Unity】11.3 基本碰撞体(箱体、球形、胶囊、网格)
  4. SecureCRT 自定义标签
  5. SNN学习笔记(一): LIF模型
  6. 开源ETL利器—Kettle的实战教程
  7. winform 判断内外网_静海洗手盆疏通报价–光波网
  8. 公众号节日(元宵)文案怎么写?
  9. 中睿天下实力入选2022信创产业独角兽TOP100
  10. 主题:的中间层框架 第二节 |DLL的Exception你如何处理?|不同宿主内如果接口抛出异常,怎么处理...