随笔 - 172  文章 - 52  评论 - 6  阅读 - 17万

Python - pyecharts:直接将图片保存为 png, pdf, gif 格式的文件

 参考一

关键:使用 pyecharts-snapshot插件

第一步:安装phantomjs

打开系统命令行,键入下列代码:

npm install -g phantomjs-prebuilt

第二步:安装了 Nodejs 环境

下载链接:https://nodejs.org/en/download/

第三步:安装 pyecharts-snapshot

pip install pyecharts-snapshot

第四步:重启计算机,render(path=“”)的输出路径和格式即可

 

参考二

pyecharts生成的网页图像如果直接截图,图片分辨率较低,不适合用于演示。因此可以考虑将其转换为jpg等格式使用。网上搜到的大部分采用pyecharts-snapshot方式来进行转换。通常的方法是:

(1)安装phantomjs  (下载地址:http://phantomjs.org/download.html),这个版本相对固定,一般不需考虑版本问题。

(2)安装node.js (我的电脑上一直装有node.js,因此不确定该安装是否必须) https://nodejs.org/en/download/

(3)安装pyecharts-snapshot         

pip install pyecharts-snapshot

(4)使用snapshot进行转换 

复制代码
from pyecharts import Line, Pie, Grid
from pyecharts_snapshot.main import make_a_snapshot
 
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 10, 100]
v2 = [55, 60, 16, 20, 15, 80]
line = Line("折线图示例")
line.add("商家A", attr, v1, mark_point=["average"])
line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"])
line.render('test.html')
 
make_a_snapshot('test.html', 'test.pdf'
复制代码

然而,不幸的是,我照搬这种方法,程序运行没有任何错误提示,但是出现两个警告信息

 RuntimeWarning: coroutine 'make_a_snapshot' was never awaited
 RuntimeWarning: Enable tracemalloc to get the object allocation traceback

           然后,没有写任何文件!几经搜索,发现问题出在python版本上,据pyecharts (https://github.com/pyecharts)github社区中明确表示上述方法不支持python3.6 3.7等版本。可以使用snapshot-phantomjs替代。

        (万恶的版本问题,不知道有多少初学者因为版本问题而从入门到放弃了。反正笔者当年安装keras、TensorFlow等各种版本切换,差点就疯了。不过坚持下来,会发现多解决一些问题,积累一些经验,在遇到技术问题,心里就没有刚开始那么紧张和无助了)。

         下面我就直接安装。因为已经安装了phantomjs 和node.js了,所以不确定除了phantomjs,是否还需要node.js

        (1)还是先安装snapshot-phantomjs。     

pip install snapshot-phantomjs

我是使用的清华镜像,所以pip install的速度还是飞快的。如果安装速度慢的,可以考虑使用国内镜像。 当然,高手也可以直接在GitHub上下载源文件(https://github.com/pyecharts/snapshot-phantomjs)。

       (2)当然就是使用了。下面是使用的基本结构:

from snapshot_phantomjs import snapshot
from pyecharts.render import make_snapshot
 
 
make_snapshot(snapshot,"*.html","*.svg")#生成svg图片

至此,大功告成了。在snapshot.py文件中可以看到,它支持的文件格式有如下几种。

PNG_FORMAT = "png"
JPG_FORMAT = "jpeg"
GIF_FORMAT = "gif"
PDF_FORMAT = "pdf"
SVG_FORMAT = "svg"
EPS_FORMAT = "eps"
B64_FORMAT = "base64"

因此,在输出的文件后缀名中,要严格按照上面的几个字符串来写,不然会有错误提示。

posted on   共感的艺术  阅读(16670)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示