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

 更新时间:2022年02月22日 09:01:41   作者:叶庭云  
使用 pyecharts 渲染成图片一直是开发者比较关心的功能,pyecharts提供了selenium、phantomjs和pyppeteer 三种方式。本文将具体介绍一下这三种方式的使用,需要的可以参考一下

使用 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如何制作好玩的GIF动图详解

    利用Python如何制作好玩的GIF动图详解

    这篇文章主要给大家介绍了关于利用Python如何制作好玩的GIF动图的相关资料,实现的方法主要利用ImageMagick,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-07-07
  • CentOS6.5设置Django开发环境

    CentOS6.5设置Django开发环境

    这篇文章主要为大家详细介绍了CentOS6.5设置Django开发环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • python 控制语句

    python 控制语句

    python控制语句和其它的语言的控制语句有些地方是不同的,python的一些哲学思想就体现在他的控制语句上
    2011-11-11
  • python实现屏保程序(适用于背单词)

    python实现屏保程序(适用于背单词)

    这篇文章主要为大家详细介绍了python实现屏保程序,适用于背单词,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • python中列表和元组的用法以及区别超详细讲解

    python中列表和元组的用法以及区别超详细讲解

    这篇文章主要介绍了Python中的列表和元组,包括它们的定义、特点、常见操作以及与列表的区别,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • python3处理word文档实例分析

    python3处理word文档实例分析

    在本篇文章里小编给大家分享了一篇关于python3处理word文档实例分析内容,有兴趣的朋友们可以参考下。
    2020-12-12
  • Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    这篇文章主要介绍了Python基于Pymssql模块实现连接SQL Server数据库的方法,较为详细的分析了pymssql模块的下载、安装及连接、操作SQL Server数据库的相关实现技巧,需要的朋友可以参考下
    2017-07-07
  • python3写的简单本地文件上传服务器实例

    python3写的简单本地文件上传服务器实例

    今天小编就为大家分享一篇python3写的简单本地文件上传服务器实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python实现数据可视化大屏布局的示例详解

    Python实现数据可视化大屏布局的示例详解

    数据可视化大屏展示需求无疑是对数据分析结果最好的诠释,能够使得别人能够轻松的就理解我们的数据意图。本文将通过pyecharts模块来实现,感兴趣的可以了解一下
    2022-11-11
  • Python针对不同文本长度的处理方案总结与对比

    Python针对不同文本长度的处理方案总结与对比

    这篇文章主要为大家详细介绍了Python如何针对不同文本长度的处理方案,结合层次化编码和检索优化策略,感兴趣的小伙伴可以参考一下
    2025-02-02

最新评论