脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Pyecharts可视化图片渲染的方法详解

Pyecharts可视化图片渲染的方法详解

2022-10-10 11:33叶庭云 Python

使用 pyecharts 渲染成图片一直是开发者比较关心的功能,pyecharts提供了selenium、phantomjs和pyppeteer 三种方式。本文将具体介绍一下这三种方式的使用,需要的可以参考一下

使用 pyecharts 渲染成图片一直是开发者比较关心的功能,pyecharts提供了 selenium、phantomjs 和 pyppeteer 三种方式。

更多介绍可以学习官方文档:https://pyecharts.org/#/zh-cn/render_images

首先需要安装上snapshot-selenium

?
1
pip install snapshot-selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

Pyecharts可视化图片渲染的方法详解

测试代码如下:

?
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
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")

关键代码:

?
1
2
3
4
5
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
 
# 渲染的html保存为png图片
make_snapshot(snapshot, sankey.render(), "Pyecharts生成图片.png")

结果如下:

Pyecharts可视化图片渲染的方法详解

补充

当然Pyecharts不仅能进行可视化图片渲染,还能进行图表的渲染,同样也是使用selenium, phantomjs 和 pyppeteer这三种方式

渲染图片依赖库

1.make_snapshot

make_snapshot 用于 pyecharts 直接生成图片。

?
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
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。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 安装
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。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 安装
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。

?
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
# 安装
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可视化图片渲染内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/fyfugoyfa/article/details/122815222

延伸 · 阅读

精彩推荐
  • PythonPyecharts可视化图片渲染的方法详解

    Pyecharts可视化图片渲染的方法详解

    使用 pyecharts 渲染成图片一直是开发者比较关心的功能,pyecharts提供了selenium、phantomjs和pyppeteer 三种方式。本文将具体介绍一下这三种方式的使用,需要的...

    叶庭云4842022-10-10
  • PythonPython使用pyenv实现多环境管理

    Python使用pyenv实现多环境管理

    这篇文章主要介绍了Python使用pyenv实现多环境管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    氷泠7992021-09-02
  • Python实例讲解python中的序列化知识点

    实例讲解python中的序列化知识点

    本篇文章通过代码实例给大家详细分享了关于python中的序列化知识点内容,有兴趣的朋友们可以学习下。 ...

    脚本之家5002021-04-06
  • Python收集的几个Python小技巧分享

    收集的几个Python小技巧分享

    这篇文章主要介绍了收集的几个Python小技巧分享,如获得当前机器的名字、获取当前工作路径、获取系统的临时目录等,需要的朋友可以参考下 ...

    脚本之家4712020-05-15
  • PythonPython 3.x 新特性及10大变化

    Python 3.x 新特性及10大变化

    这篇文章主要介绍了Python 3.x 新特性及10大变化,本文讲解了Python之父Guido van Rossum谈到了Python 3.0的构思,Python3版本的一些变化如print() and exec() 函数、整数及除...

    Python教程网7302020-07-15
  • Python打包python 加icon 去掉cmd黑窗口方法

    打包python 加icon 去掉cmd黑窗口方法

    今天小编就为大家分享一篇打包python 加icon 去掉cmd黑窗口方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    frank_good12532021-07-18
  • Python朴素贝叶斯算法的python实现方法

    朴素贝叶斯算法的python实现方法

    这篇文章主要介绍了朴素贝叶斯算法的python实现方法,详细分析了朴素贝叶斯算法的特性及用途,并给出了基于python的实现方法,需要的朋友可以参考下 ...

    脚本之家2822020-05-13
  • PythonPython爬虫教程之利用正则表达式匹配网页内容

    Python爬虫教程之利用正则表达式匹配网页内容

    这篇文章主要给大家介绍了关于Python爬虫教程之利用正则表达式匹配网页内容的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有...

    鹿鸣Llane9372021-08-11