pyecharts生成的图 图片另存为为什么是黑底的?

2023-03-27 23:32 点击:265 编辑:admin

在Jupyter中使用Pyechart画图渲染生成的都是html文件,想获取图片只能截图(太不方便了)。老师上课提到render也可生成png/jpeg/pdf/svg等格式的文件,尝试了很久才成功。记录下,希望能帮助大家闭坑。


官方文档中提到了使用 pyecharts 渲染成图片的三种方式: selenium, phantomjs 和 pyppeteer 三种方式。selenium和phantomjs我都尝试了,最终selenium成功,phantomjs失败。在此分享下selenium方法的实现过程,个人觉得这个方法简单友好

snapshot-selenium是 pyecharts + selenium 渲染图片的扩展,使用 selenium 需要配置 browser driver,推荐使用Chrome浏览器。

步骤一:下载并配置ChromeDriver

1. 查看Chrome版本

打开Chrome,找到关于“关于Google Chrome”,查看版本。

2. 下载ChromeDriver

下载地址:http://chromedriver.storage.googleapis.com/index.html

选择对应版本的Chromedrive并进行下载。

3. 配置ChromeDriver环境

进入“访达”,通过快捷键“command+shift+g”进入“/usr/local/bin”,将ChromeDriver放在该路径下。

步骤二:验证安装是否成功

打开终端,查看ChromeDriver版本,输入

$ chromedriver –version

注意,能够输出ChromeDriver版本即安装成功。

关于验证的更多内容请参考:在Mac系统下搭建Selenium环境并驱动Chrome浏览器_版本

步骤三:安装包 snapshot-selenium

打开终端,输入

$ pip install snapshot-selenium

程序实现

## 导入相关包
from pyecharts.charts import Funnel
from pyecharts import options as opts
from pyecharts.render import make_snapshot # 导入输出图片工具
from snapshot_selenium import snapshot # 使用snapshot-selenium渲染图片

## 输入数据
data  = [45,86,35,53,68]
labels=['计算机','手机','电视机','冰箱','洗衣机']

## 生成漏斗图
wf = Funnel(init_opts=opts.InitOpts(
                width="500px", # 宽度
                height="400px", # 高度
                bg_color="white" # 图片背景
            ))

wf.add('电器销售图',[list(z) for z in zip(labels,data)])

## 渲染图片
make_snapshot(snapshot,wf.render(),'/Users/apple/Desktop/图片.png')
保存到桌面的图片

有一点需要注意,在没配置全局变量前,我生成的图片背景是黑色的。解决方法是调用opts.InitOpts改变bg_color的参数,详见上代码。

生成的图片

除了生成png格式的图片,该方法还可以生成jpeg以及pdf,非常方便,只需改一下文件后缀名。

## 渲染图片
make_snapshot(snapshot,wf.render(),'/Users/apple/Desktop/图片.png') # png
make_snapshot(snapshot,wf.render(),'/Users/apple/Desktop/图片.jpeg') # jpeg
make_snapshot(snapshot,wf.render(),'/Users/apple/Desktop/图片.pdf') # pdf

本文完,快去试试吧~

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片
下一篇:公灵提配惠比特(特灵两联供,大神帮忙看下方案?)
上一篇:出售中的黑色惠比特(这里有养惠比特犬的吗?)