Pyecharts输出图片问题
文章目录
1.问题描述
用pyecharts输出的日历图结果保存为html,无法导出为png、jpg等格式
2.解决措施
官方给出三种解决措施,点击查看
前两个我没有用到,本文主要针对官方给的最后一个方法和另外一种折中的方法
2.1安装snapshot-selenium
2.1安装snapshot-pyppeteer
2.2安装 snapshot_phantomjs
pip install snapshot_phantomjs
安装snapshot_phantomjs之前需要先安装phantomjs
phantomjs需要将安装路径加入环境变量中:
X:\phantomjs-2.1.1-windows\bin
X:\phantomjs-2.1.1-windows
打开cmd输入:
phantomjs -v
此时,phantomjs已经成功写入环境变量,最好重启一下。
from pyecharts import options as opts
from pyecharts.charts import Calendar
from snapshot_phantomjs import snapshot
from pyecharts.render import make_snapshot
begin = datetime.date(2017, 1, 1)
end = datetime.date(2017, 12, 31)
data = [[str(begin + datetime.timedelta(days=i)), file["AQI"][i].max()]
for i in range((end - begin).days + 1)
]
calendar=(
Calendar()
.add("", data, calendar_opts=opts.CalendarOpts(range_="2017",pos_left='center'))
.set_global_opts(
title_opts=opts.TitleOpts(title="2017年AQI"),
visualmap_opts=opts.VisualMapOpts(
max_=500,
min_=5,
orient="horizontal",
is_piecewise=True,
pos_top="230px",
pos_left="100px",
),
)
)
make_snapshot(snapshot,calendar.render(),"xx.png")
默认情况下,输出的内容会保存在工作路径下。
可能会出现报错,暂时不知道怎么更改;切换成svg输出不报错但是里面没有内容
如果你能解决的话,麻烦在评论区告诉我一下!!!
SVG输出无内容
可能出现的报错
可以在输出html文件后,用anaconda切换到对应的工作目录下:
snapshot render.html png
输出成功的图片如下图所示:
3.另外一种折中的方法
之前不知道pyecharts输出的结果可以转为html,所以直接搜索将html转为JPG的办法
3.1.下载python的imgkit、pdfkit库
pip install imgkit
pip install pdfkit
3.2.下载wkhtmltopdf工具包
对应自己的电脑版本下载,installer下载的是exe文件
直接点击打开,然后一路next,在安装路径下可以找到对应的两个exe文件
import imgkit
path_wkimg = r'D:\wkhtmltopdf\bin\wkhtmltoimage.exe' # 工具路径
cfg = imgkit.config(wkhtmltoimage=path_wkimg)
# 1、将html文件转为图片
imgkit.from_file("E:\\空气质量预测\\render.html", 'cal.jpg', config=cfg)
输出结果保存在同一目录下
此时可以发现,这种图片中存在大量的空白部分,可以用ps打开裁剪后去除
参考
1.【Python】Python将HTML转成图片、PDF
2.python连echarts画图并将文件保存为png图片
3.PyEcharts输出保存图片的多种方法