在Jupyter Notebook里面渲染pyecharts无法显示

可以直接使用方案3,都能出结果

方案1

这个问题的原因,一般是静态资源没法加载,官网有解决方案:官网解决方案

但是我觉得这个还是有一点麻烦,推荐以下方案:

from pyecharts.globals import CurrentConfig

CurrentConfig.ONLINE_HOST="https://cdn.kesci.com/lib/pyecharts_assets/"

在代码最前面加上以上的两行代码,使用kesci提供的静态资源。

另外推荐一个大神整理的Pyecharts教程,需要的时候直接抄就可以。

来源:https://blog.csdn.net/weixin_38042902/article/details/108762716

方案2:对x轴数字、y轴做类型转换

add_axis、add_yaxis这两个pyecharts调用,要求得是python的list最好。
原因是:pandas的某一列如果是float64,它是numpy的float64数字类型,和python的float是不完全一样的,最好自己做下转换,这里的pyecharts做的很不好。

可以这样,把pandas的dataframe的某一列,变成python的list;

例如:
x_datas = [ ]
for i in df["xx"]:
x_datas.append(str(i)

如果是y轴:
y_datas = [ ]
for i in df["yy"]:
y_datas.append(float(i)

然后再 add_xaxis(x_datas)、add_yaxis(y_datas),重新运行试一下。

方案3:使用render()方法生成html

地址:https://05x-docs.pyecharts.org/#/zh-cn/prepare

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker

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="我是副标题"))
    .render("bar_base.html")
)

这个是官网的例子,这个办法,直接生成html文件
生成后,在这个jupyter notebook目录,直接找到这个html文件,双击打开,看是否能出图
如果能出图也是可以的。

Leave a Comment