c4rt1y

notebook无法展示pyecharts图表内容

0x01 介绍

pyecharts在使用中,发现运行正常,但是显示图表则没有效果,顾有了此文,主要原因是他读取的https://echarts.baidu.com/dist/echarts.min.js,但这个地址已经消失,因此需要给他加入js文件的地址,才能ok。

0x02 方案

pyecharts 提供了更改全局 HOST 的快捷方式,下面以开发者启动本地 FILE SERVER 为例,操作如下。可以使用如下三种方案:

方案一:
获取 pyecharts-assets 项目
git clone https://github.com/pyecharts/pyecharts-assets.git
cd pyecharts-assets
python -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
默认会在本地 8000 端口启动一个文件服务器

## 配置 pyecharts 全局 HOST
## 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8000/assets/"
## 接下来所有图形的静态资源文件都会来自刚启动的服务器
from pyecharts.charts import Bar
bar = Bar()
Notebook-Server

方案二
pyecharts v1.5.1+ 起开始支持 Notebook 插件作为静态资源服务。
获取 pyecharts-assets 项目
git clone https://github.com/pyecharts/pyecharts-assets.git
安装扩展插件
cd pyecharts-assets
安装并激活插件
jupyter nbextension install assets
jupyter nbextension enable assets/main
配置 pyecharts 全局 HOST

## 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可
from pyecharts.globals import CurrentConfig, OnlineHostType

## OnlineHostType.NOTEBOOK_HOST 默认值为 http://localhost:8888/nbextensions/assets/
CurrentConfig.ONLINE_HOST = OnlineHostType.NOTEBOOK_HOST

# 接下来所有图形的静态资源文件都会来自刚启动的服务器
from pyecharts.charts import Bar
bar = Bar()

方案三:
mkdir -p /usr/local/share/jupyter/nbextensions/widgets/notebook/js/
mkdir -p /usr/local/share/jupyter/nbextensions/echarts

cp /Users/c4rt1y/Library/Python/3.9/share/jupyter/nbextensions/jupyter-js-widgets/extension.js /usr/local/share/jupyter/nbextensions/widgets/notebook/js/
  
cp /Users/c4rt1y/Documents/env/python3/lib/python3.9/site-packages/jupyter_echarts_pypkg/resources/echarts/echarts.min.js  /usr/local/share/jupyter/nbextensions/echarts

0x03 资料来源

https://www.it610.com/article/1296130793868959744.htm
https://pyecharts.org/#/zh-cn/assets_host
GoTop