Pyecharts可视化图片渲染的方法详解
- 更新时间:2023-01-05 09:15:29
- 编辑:邰和歌
参考资料
- Python趣味编程入门与实战 PDF 电子书 / 98 MB / 王征;李晓波 推荐度:
- Python实战速成手册:数据分析+机器学习+深度学习 PDF 电子书 / 16.1 MB / 方勇 推荐度:
- 笨办法学Python PDF 电子书 / 873 KB / [美]泽德 A. 肖(Zed A. Sh 推荐度:
正文内容
Pyecharts可视化图片渲染
使用 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()
到此这篇关于Pyecharts可视化图片渲染的方法详解的文章就介绍到这了,更多相关Pyecharts可视化图片渲染内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!
python相关教程
-
python json数据怎么写入文件
在本篇文章中小编给大家整理了关于python json数据怎么写入文件的相关实例内容以及代码,需要的朋友们学习参考下。
发布时间:2019-07-03
-
python怎么批量读取图片
给网友们整理关于python的教程,第一步,打开shell,导入skimage、data_dir包。||第二步,调用str=data_dir + '/*.png'来设置图片路径。||第三步,采用coll=io.ImageCollection(str)指令来批量读取图片即可。
发布时间:2022-06-29
-
利用numba让python速度提升百倍
给网友们整理关于python的教程,这篇文章主要介绍了利用numba让python速度提升百倍,python由于它动态解释性语言的特性,numba是一款可以将python函数编译为机器代码的JIT编译器,下面针对numba相关内容展开,需要的小伙伴可以参考一下
发布时间:2022-06-14
-
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
为网友们分享了关于python的教程,这篇文章主要介绍了python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形) ,需要的朋友可以参考下
发布时间:2022-11-07
-
python画折线示意图实例代码
这篇文章主要为大家详细介绍了python画折线图的方法,一个画折线图的程序具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2019-06-07
-
python最小二乘法线性拟合实现代码
这篇文章主要为大家详细介绍了python实现最小二乘法线性拟合,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2020-02-07
-
Python实现一行输入多个值的实例方法
下面为大家分享一篇Python 实现一行输入多个值的方法,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧
发布时间:2019-09-24
-
Python对象属性自动更新的实现方法代码
这篇文章主要介绍了Python对象属性自动更新操作,结合实例形式对比分析了Python对象属性自动更新的原理,并改进了属性互联操作实现方法,需要的朋友可以参考下
发布时间:2020-01-31
-
python爬虫好学吗
python爬虫其实并不难学,首先是使用http库向目标站点发起请求,然后使用正则表达式(RE模块),第三方解析库如Beautifulsoup解析,最后一步将数据存储。
发布时间:2020-02-17
-
python对html过滤处理方法总结
今天小编就为大家分享一篇python对html过滤处理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2019-06-18