pyecharts无法在jupyterlab中显示的问题

一、 概述

最近有一些数据需要绘图分析,由于本人对excel不熟悉,查阅资料发现pandas + pyecharts对数据进行可视化分析非常方便,所以开始尝试使用。我这里通过anaconda自带的jupyterlab进行测试,但是使用过程中发现pyecharts的图表无法在jupyterlab上面显示,经过查阅资料解决了此问题,在这里做一个记录方便以后查阅。

这里使用的 pyecharts 版本:1.7.0

二、使用pyecharts

查看pyecharts的版本号:

import pyecharts
pyecharts.__version__

代码运行后并不能绘制出图像来,我是使用jupyter lab运行代码的,用notebook就可以。如下图所示:

from pyecharts.charts import Bar

x_value = ['A', 'B', 'C']
y1 = [123, 52, 214]
y2 = [45, 63, 161]

bar = (
    Bar()
    .add_xaxis(x_value)
    .add_yaxis(series_name='公司甲', yaxis_data=y1)
    .add_yaxis(series_name='公司乙', yaxis_data=y2)
)

bar.render_notebook()

在这里插入图片描述

三、原因及解决方法

  • 原因
    不同的 notebook 环境有自己不同的渲染要求,pyecharts 在底层做了适配处理,但因为我们无法在import pyecharts的时候知道用户具体使用的是哪种 notebook 环境,所以需要用户在使用时在顶部声明环境类型。
  • 解决方法
    Jupyter Lab 渲染的时候有两点需要注意:

Jupyter Notebook 直接调用render_notebook随时随地渲染图表,默认为Jupter-Notebook

  1. Jupyter Lab中运行下面的两行代码即可:
from pyecharts.globals import CurrentConfig, NotebookType  
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
  1. 在第一次渲染的时候调用 load_javascript() 会预先加载基本 JavaScript 文件到 Notebook 中。如若后面其他图形渲染不出来,则请开发者尝试再次调用,因为 load_javascript 只会预先加载最基本的 js 引用。而主题、地图等 js 文件需要再次按需加载。
  2. load_javascript()render_notebook() 方法需要在不同的 cell 中调用,这是 Notebook 的内联机制,其实本质上我们是返回了带有 html, javascript 对象的 class。notebook 会自动去调用这些方法。

修改后的代码如下:

from pyecharts.globals import CurrentConfig, NotebookType  
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts.charts import Bar
from pyecharts import options as opts
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
    .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)
bar.load_javascript()

bar.render_notebook()

运行结果如下图:

在这里插入图片描述

如果你按照上面的方式还是无法显示图形,可以按照下面的参考文档进行操作。

参考文章:
pyecharts无法在jupyterlab中显示问题

https://pyecharts.org/#/zh-cn/notebook

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值