使用pyecharts输出图片

最近想用pyecharts画节点之间的关系图,看了pyecharts官网上的关系图示例后就开始迫不及待的跑demo了,但发现demo的输出是html文件,而我需要将关系图批量的输出为图片,于是就开始各种查资料,找pyecharts输出为图片的方法,看了很多资料,安装好几个python包,但那个demo还是没有跑通。最后实在没办法又回到官网来寻找资料,没想到踏破铁鞋无觅处,得来全不费工夫!官网上已经总结好了这个问题的解决方案

pyecharts 提供了 seleniumphantomjs 两种方式。

第一种方法需要安装snapshot-selenium,并且需要做一些其他的配置。(snapshot-selenium 是 pyecharts + selenium 渲染图片的扩展,使用 selenium 需要配置 browser driver,这部分可以参考 selenium-python 相关介绍,推荐使用 Chrome 浏览器,可以开启 headless 模式。目前支持 Chrome, Safari。)

pip install snapshot-selenium

第二种方法需要安装snapshot-phantomjs。(snapshot-phantomjs 是 pyecharts + phantomjs 渲染图片的扩展,需要先安装 phantomjs,安装方法请参照官网 phantomjs.org/download.html。)

pip install snapshot-phantomjs

在这里只介绍第二种方法,因为第一种方法的配置比较复杂,我尝试了,但是没有成功,可能是有些东西配置的有问题。

使用示例

from pyecharts import options as opts
from pyecharts.charts import Graph, Page
from pyecharts.render import make_snapshot

from snapshot_phantomjs import snapshot

def graph_base() -> Graph:
    nodes = [
        {"name": "结点1", "symbolSize": 10},
        {"name": "结点2", "symbolSize": 20},
        {"name": "结点3", "symbolSize": 30},
        {"name": "结点4", "symbolSize": 40},
        {"name": "结点5", "symbolSize": 50},
        {"name": "结点6", "symbolSize": 40},
        {"name": "结点7", "symbolSize": 30},
        {"name": "结点8", "symbolSize": 20},
    ]
    links = []
    for i in nodes:
        for j in nodes:
            links.append({"source": i.get("name"), "target": j.get("name")})
    c = (
        Graph()
        .add("", nodes, links, repulsion=8000)
        .set_global_opts(title_opts=opts.TitleOpts(title="Graph-基本示例"))
    )
    return c

def main():
    g = graph_base()
    make_snapshot(snapshot, g.render(), "nodes0.png")

if __name__ == "__main__":
    main()

输出结果

 

  • 3
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值