使用snapshot_phantomjs保存pyecharts为图片

admin
2022-10-30 / 0 评论 / 1 阅读 / 正在检测是否收录...

1.安装python库

pip3 install snapshot_phantomjs

2.安装phantomjs
官网地址
下载对应操作系统的版本,并复制到系统环境路径下

#查看是否安装成功
phantomjs --version

3.因网络环境问题报错,

File "/root/snapshot-phantomjs_test.py", line 19, in <module>
make_snapshot(snapshot, bar_chart().render(), "bar0.png")
File "/usr/local/lib/python3.9/site-packages/pyecharts/render/snapshot.py", line 45, in make_snapshot
raise OSError(content_array)
OSError: ["ReferenceError: Can't find variable: echarts\n\n file:////root/render.html:12 in global code\nReferenceError: Can't find variable: echarts\n\n undefined:1\nnull\n"]

则需要下载所需js:

wget https://assets.pyecharts.org/assets/echarts.min.js

4.测试案例

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot

file_path = "{}/".format(os.path.dirname(os.path.abspath("/root/echarts.min.js")))

def bar_chart() -> Bar:
    c = (
        Bar(init_opts=opts.InitOpts(js_host=file_path))
        .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")
0

评论 (0)

取消