Pyecharts可視化圖片渲染的方法詳解
使用 pyecharts 渲染成圖片一直是開發(fā)者比較關(guān)心的功能,pyecharts提供了 selenium、phantomjs 和 pyppeteer 三種方式。
更多介紹可以學(xué)習(xí)官方文檔:https://pyecharts.org/#/zh-cn/render_images
首先需要安裝上snapshot-selenium
pip install snapshot-selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

測(cè)試代碼如下:
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")
關(guān)鍵代碼:
from pyecharts.render import make_snapshot from snapshot_selenium import snapshot # 渲染的html保存為png圖片 make_snapshot(snapshot, sankey.render(), "Pyecharts生成圖片.png")
結(jié)果如下:

補(bǔ)充
當(dāng)然Pyecharts不僅能進(jìn)行可視化圖片渲染,還能進(jìn)行圖表的渲染,同樣也是使用selenium, phantomjs 和 pyppeteer這三種方式
渲染圖片依賴庫(kù)
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,
# 延遲時(shí)間,避免圖還沒(méi)渲染完成就生成了圖片,造成圖片不完整
delay: float = 2,
# 像素比例,用于調(diào)節(jié)圖片質(zhì)量
pixel_ratio: int = 2,
# 渲染完圖片是否刪除原 HTML 文件
is_remove_html: bool = False,
# 瀏覽器類型,目前僅支持 Chrome, Safari,使用 snapshot-selenium 時(shí)有效
browser: str = "Chrome",
**kwargs,
)渲染方式
1.snapshot-selenium
snapshot-selenium 是 pyecharts + selenium 渲染圖片的擴(kuò)展,使用 selenium 需要配置 browser driver,這部分可以參考 selenium-python 相關(guān)介紹,推薦使用 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(["襯衫", "毛衣", "領(lǐng)帶", "褲子", "風(fēng)衣", "高跟鞋", "襪子"])
.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-測(cè)試渲染圖片"))
)
return c
make_snapshot(snapshot, bar_chart().render(), "bar0.png")2.snapshot-phantomjs
snapshot-phantomjs 是 pyecharts + phantomjs 渲染圖片的擴(kuò)展,需要先安裝 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(["襯衫", "毛衣", "領(lǐng)帶", "褲子", "風(fēng)衣", "高跟鞋", "襪子"])
.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-測(cè)試渲染圖片"))
)
return c
make_snapshot(snapshot, bar_chart().render(), "bar0.png")3.snapshot-pyppeteer
snapshot-pyppeteer 是 pyecharts + pyppeteer 渲染圖片的擴(kuò)展,需要先安裝 pyppeteer 和 Chromium。
# 安裝
pip install snapshot-pyppeteer
# 安裝完后建議執(zhí)行 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="我是副標(biāo)題"))
)
make_snapshot(snapshot, c.render(), "bar.png")
if __name__ == '__main__':
bar_base()到此這篇關(guān)于Pyecharts可視化圖片渲染的方法詳解的文章就介紹到這了,更多相關(guān)Pyecharts可視化圖片渲染內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS6.5設(shè)置Django開發(fā)環(huán)境
這篇文章主要為大家詳細(xì)介紹了CentOS6.5設(shè)置Django開發(fā)環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
python實(shí)現(xiàn)屏保程序(適用于背單詞)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)屏保程序,適用于背單詞,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
python中列表和元組的用法以及區(qū)別超詳細(xì)講解
這篇文章主要介紹了Python中的列表和元組,包括它們的定義、特點(diǎn)、常見(jiàn)操作以及與列表的區(qū)別,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫(kù)的方法詳解
這篇文章主要介紹了Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫(kù)的方法,較為詳細(xì)的分析了pymssql模塊的下載、安裝及連接、操作SQL Server數(shù)據(jù)庫(kù)的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07
python3寫的簡(jiǎn)單本地文件上傳服務(wù)器實(shí)例
今天小編就為大家分享一篇python3寫的簡(jiǎn)單本地文件上傳服務(wù)器實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Python實(shí)現(xiàn)數(shù)據(jù)可視化大屏布局的示例詳解
數(shù)據(jù)可視化大屏展示需求無(wú)疑是對(duì)數(shù)據(jù)分析結(jié)果最好的詮釋,能夠使得別人能夠輕松的就理解我們的數(shù)據(jù)意圖。本文將通過(guò)pyecharts模塊來(lái)實(shí)現(xiàn),感興趣的可以了解一下2022-11-11
Python針對(duì)不同文本長(zhǎng)度的處理方案總結(jié)與對(duì)比
這篇文章主要為大家詳細(xì)介紹了Python如何針對(duì)不同文本長(zhǎng)度的處理方案,結(jié)合層次化編碼和檢索優(yōu)化策略,感興趣的小伙伴可以參考一下2025-02-02

