在调用pyecharts包中,想绘制一个分布柱状图。发现以下问题。我的number值传不过去给bar.add_yaxis。
请看下面:
import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts
df = pd.read_csv('C:/Users/Shinelon/Desktop/Python_development_engineer.csv', encoding='utf-8')
city = df['城市'].value_counts()
print(type(city))
print(city)
# print(len(city))
keys = city.index # 等价于keys = city.keys()
values = city.values
bar = Bar()
# print(type(number[0],number))
print(len(city.index),city.index)
print(len(city.values),city.values)
bar.add_xaxis(city.index)
bar.add_yaxis("城市",city.values)
bar.set_global_opts(title_opts=opts.TitleOpts(title="python职位的城市分布图", subtitle="参与的城市"))
bar.render('j2.html')
截图如下
传给我的number值传不过去给bar.add_yaxis不成功!是格式问题吗?我还打印出看看了number的值
后面把打印出来的number的值复制进去给,竟让可以显示!
后面请教了大佬!
city.values 里的元素类型是 <class ‘numpy.int64’>
pyecharts 不认。也就是类型为‘int 64’的对象不是可序列化的JSON。
解决方法:
city_list=[c for c in list(city.index)]
#city_list=["{}".format©for c in list(city.index)]
city_val=[int© for c in list(city.values)] #json不识别NumPy数据类型。将数字转换为Python int序列化对象之前: