jupyter notebook使用pyecharts库渲染图表,render_notebook()方法无法正常显示

该文章已生成可运行项目,

问题描述

在jupyter notebook中使用pyecharts库渲染图表,render()方法可正常在本地生成.html文件,使用render_notebook()方法想要直接在notebook界面显示渲染图表无法正常显示,显示空白。

作者版本

python --3.8.15
pyecharts --2.0.06

简单举例

​
from pyecharts.charts import Line
from pyecharts import options as opts

# 假设我们有以下数据
x_data = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
y_data = [5, 20, 36, 10, 10, 100]

# 创建折线图
line = Line()
line.add_xaxis(x_data)
line.add_yaxis("商品销量", y_data)
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图示例"))

# 在 Jupyter Notebook 中展示图表
line.render_notebook()

​

结果显示

问题原因

1.echarts图表

在 Jupyter Notebook 中使用 Pyecharts 或其他 JavaScript 依赖的库时,可能会遇到这个问题。Notebook 中缺少echarts图表基本的JavaScript文件,导致图表渲染不出来。

2.pyecharts库环境配置

当你在jupyer环境中使用Pyecharts库时,Pyecharts 需要知道它运行在哪种类型的笔记本环境中,以便正确地输出图表。

解决方法

1.问题一

在原来代码后添加语句,加载基本的JavaScript到notebook中。

line.load_javascript()

2.问题二

在原来代码前添加语句,配置当前环境以便在 Jupyter Lab 中使用 Pyecharts。

# 从 pyecharts.globals 模块导入 CurrentConfig 和 NotebookType 类
from pyecharts.globals import CurrentConfig, NotebookType

# 设置 CurrentConfig 的 NOTEBOOK_TYPE 属性为 NotebookType.JUPYTER_LAB,
# 以便在 Jupyter Lab 环境中正确渲染 Pyecharts 图表
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
  • CurrentConfig 是一个全局配置类,用于设置 Pyecharts 的各种配置选项。
  • NotebookType 是一个枚举类,用于指定 Pyecharts 应该在哪种笔记本环境中运行。

效果展示

1.完整代码

1.先注释掉line.render_notebook(),运行代码。

​
from pyecharts.charts import Line
from pyecharts import options as opts

from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
# 假设我们有以下数据
x_data = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
y_data = [5, 20, 36, 10, 10, 100]

# 创建折线图
line = Line()
line.add_xaxis(x_data)
line.add_yaxis("商品销量", y_data)
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图示例"))

# 在 Jupyter Notebook 中展示图表
line.load_javascript()
#line.render_notebook()

​

2.解除注释,完整运行。

​
from pyecharts.charts import Line
from pyecharts import options as opts

from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
# 假设我们有以下数据
x_data = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
y_data = [5, 20, 36, 10, 10, 100]

# 创建折线图
line = Line()
line.add_xaxis(x_data)
line.add_yaxis("商品销量", y_data)
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图示例"))

# 在 Jupyter Notebook 中展示图表
line.load_javascript()
line.render_notebook()

​

2.运行结果

 注意事项

1.在同一个 Notebook 文件中,echarts图表基本的JavaScript文件平常只需加载一次就可以了,后续的图表生成只需直接渲染到 Notebook 即可,而不需要再重复写 load_javascript() 语句了。
2.如果后续遇到渲染不出的情况,需再次使用load_javascript() 加载所需 js 文件。
3.如果你在 Jupyter Notebook 中使用 Pyecharts,你应该将 NotebookType.JUPYTER_LAB 替换为 NotebookType.JUPYTER_NOTEBOOK。
4.问题二中的配置代码,应该在渲染任何 Pyecharts 图表之前执行,以确保配置生效。如果你在设置 CurrentConfig.NOTEBOOK_TYPE 之前尝试渲染图表,可能会遇到渲染问题。

总结

个人认为这是比较简单的解决方法,欢迎评论区讨论。

本文章已经生成可运行项目
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值