可以直接使用方案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文件,双击打开,看是否能出图
如果能出图也是可以的。