网站首页 > 精选文章 正文
今天给大家推荐的开源项目是一个非常好用的可视化库 -- PyG2Plot 。
安装和使用都非常简单,如下:
1、安装
pip install pyg2plot
2、使用方法
渲染成 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. 渲染成 html 文件
line.render("plot.html")
# 2. 渲染成 html 字符串
line.render_html()
在 Jupyter 中使用
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",
})
# 1. 渲染到 notebook
line.render_notebook()
# 2. 渲染到 jupyter lab
line.render_jupyter_lab()
目前 pyg2plot 只能提供简单的一个方案 API:Plot,使用方法如下:
- Plot(plot_type: str): 获取 Plot 对应的类实例。
- plot.set_options(options: object): 给图表实例设置一个 G2Plot 图形的配置,文档可以直接参考 G2Plot 官网,未进行任何二次数据结构包装。
- plot.render(path, env, **kwargs): 渲染出一个 HTML 文件,同时可以传入文件的路径,以及 jinja2 env 和 kwargs 参数。
- plot.render_notebook(env, **kwargs): 将图形渲染到 jupyter 的预览。
- plot.render_jupyter_lab(env, **kwargs): 将图形渲染到 jupyter lab 的预览。
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 模块的统一做法。
猜你喜欢
- 2025-06-28 PaddleHub开源模型400+,三行代码也可实现无限AI创意梦想
- 2025-06-28 一个基于 .NET 开源、跨平台的工业物联网网关,通过可视化配置,能够轻松连接到各种设备和系统!
- 2025-06-28 FastRTC:Python 的 RTC 实时通信库
- 2025-06-28 一天涨 23k Star 的开源项目「GitHub 热点速览」
- 2025-06-28 ZeroMQ,一个不可思议的python库!
- 2025-06-28 Pokemon Go Python 开源版 API(pokemon go adventure sync)
- 2025-06-28 【推荐】一个基于 Python 开源免费、功能强大的库存管理系统
- 2025-06-28 22个受欢迎的Python不同类型开源框架
- 2025-06-28 墙裂推荐,5个学习Python编程最佳的开源库
- 2025-06-28 小白想学习Python必知的7个网站(附全套python教程分享
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)