Pyecharts可视化图片渲染的方法详解
作者:叶庭云 发布时间:2021-02-02 22:39:30
使用 pyecharts 渲染成图片一直是开发者比较关心的功能,pyecharts提供了 selenium、phantomjs 和 pyppeteer 三种方式。
更多介绍可以学习官方文档:https://pyecharts.org/#/zh-cn/render_images
首先需要安装上snapshot-selenium
pip install snapshot-selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
测试代码如下:
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
from pyecharts import options as opts
from pyecharts.charts import Sankey
sankey = Sankey(
init_opts=opts.InitOpts(
width='1000px',
height='600px',
bg_color='#fff'
)
)
sankey.add(
'',
nodes,
links,
node_gap=0,
node_width=80,
pos_right='5%',
node_align='justify',
focus_node_adjacency=True,
linestyle_opt=opts.LineStyleOpts(curve=0.5, opacity=0.2, color="source"),
label_opts=opts.LabelOpts(position='inside', color='white'),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff"),
)
print(":".join(["CSDN叶庭云", "https://yetingyun.blog.csdn.net/"]))
# sankey.render("./results/009.html")
make_snapshot(snapshot, sankey.render(), "Pyecharts生成图片.png")
关键代码:
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
# 渲染的html保存为png图片
make_snapshot(snapshot, sankey.render(), "Pyecharts生成图片.png")
结果如下:
补充
当然Pyecharts不仅能进行可视化图片渲染,还能进行图表的渲染,同样也是使用selenium, phantomjs 和 pyppeteer这三种方式
渲染图片依赖库
1.make_snapshot
make_snapshot 用于 pyecharts 直接生成图片。
from pyecharts.render import make_snapshot
def make_snapshot(
# 渲染引擎,可选 selenium 或者 phantomjs
engine: Any,
# 传入 HTML 文件路径
file_name: str,
# 输出图片路径
output_name: str,
# 延迟时间,避免图还没渲染完成就生成了图片,造成图片不完整
delay: float = 2,
# 像素比例,用于调节图片质量
pixel_ratio: int = 2,
# 渲染完图片是否删除原 HTML 文件
is_remove_html: bool = False,
# 浏览器类型,目前仅支持 Chrome, Safari,使用 snapshot-selenium 时有效
browser: str = "Chrome",
**kwargs,
)
渲染方式
1.snapshot-selenium
snapshot-selenium 是 pyecharts + selenium 渲染图片的扩展,使用 selenium 需要配置 browser driver,这部分可以参考 selenium-python 相关介绍,推荐使用 Chrome 浏览器,可以开启 headless 模式。目前支持 Chrome, Safari。
# 安装
pip install snapshot-selenium
# 使用方式
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
def bar_chart() -> Bar:
c = (
Bar()
.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"))
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-测试渲染图片"))
)
return c
make_snapshot(snapshot, bar_chart().render(), "bar0.png")
2.snapshot-phantomjs
snapshot-phantomjs 是 pyecharts + phantomjs 渲染图片的扩展,需要先安装 phantomjs。
# 安装
pip install snapshot-phantomjs
# 使用方式
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot
def bar_chart() -> Bar:
c = (
Bar()
.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"))
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-测试渲染图片"))
)
return c
make_snapshot(snapshot, bar_chart().render(), "bar0.png")
3.snapshot-pyppeteer
snapshot-pyppeteer 是 pyecharts + pyppeteer 渲染图片的扩展,需要先安装 pyppeteer 和 Chromium。
# 安装
pip install snapshot-pyppeteer
# 安装完后建议执行 chromium 安装命令
pyppeteer-install
# 使用方式
from snapshot_pyppeteer import snapshot
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.render import make_snapshot
def bar_base() -> Bar:
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
)
make_snapshot(snapshot, c.render(), "bar.png")
if __name__ == '__main__':
bar_base()
来源:https://blog.csdn.net/fyfugoyfa/article/details/122815222


猜你喜欢
- 这篇文章主要介绍了PYTHON绘制雷达图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时
- 前言mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。错误提示:this
- 数据共享是数据库最基本的特征之一。但是数据共享虽然为员工带来了便利,但也产生了一些负面作用。例如因用户并发存取而导致的对数据一致性的破坏、由
- 刚入手vue,有好多的疑问,目前遇到的是vue项目启动之后,输入http://ip:port,我发现浏览器里面显示的地址栏竟然是http:/
- USE masterDECLARE @spid intDECLARE CUR CURSORFOR SELECT spid FROM sysp
- SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
- 传染源: 野生动物,可能为中华菊头蝠病毒: 新型冠状病毒 2019-nCoV传播途径: 经呼吸道飞沫传播,亦可
- y = wx +b通过meshgrid 得到两个二维矩阵关键理解:plot_surface需要的xyz是二维np数组这里提前准备meshgr
- 标量标量由普通小写字母表示(例如,x、y和z)。我们用 R \mathbb{R} R表示所有(连续)实数标量的空间。标量由只有一个元素的张量
- <table border="1" id="tab"> <tr>
- 仿windows选项卡或叫做tabpan以及tabpage,现在还有最新的进展譬如仿淘宝网导航菜单效果皆属于此类:运行代码框<scri
- 如果没有设置分页,django-rest-framework 会将所有资源类表序列化后返回,如果资源很多,就会对网站性能造成影响。为此,我们
- 前言因为NLP作业需要用到kenlm,而kenlm在linux下更为方便。本人win10之前开启了子系统,所以就打算在子系统下进行相关作业的
- ghhs("nav01","li"); // 鼠标经过时变色 ghh
- 用Python+OpenCV实现了自动扫雷,突破世界记录,我们先来看一下效果吧。中级 - 0.74秒 3BV/S=60.81相信许多人很早就
- 写在前面的话作为有个 Python 菜逼,之前一直用的 Pycharm,但是在主题这一块怎么调整都感觉要么太骚,看起来不舒服,要么就是简直不
- 一、求算术平方根a=x=int(raw_input('Enter a number:'))if x >= :while
- 刚开始使用django,在创建第一个app时被提示不知道命令runserver,百度得出是环境变量的问题。1、配置python变量环境,C:
- 随着 Node.js v8 的发布,Node.js 已原生支持 async/await 函数,Web 框架 Koa 也随之发布了 Koa 2