鞋的价格为99 买的人数为1001人 鞋的价格为199 买的人数为101人 鞋的价格为299 买的人数为11人,将这些关系用图呈现
数据为json格式,可以下载数据,看源数据是什么样子
数据链接
import numpy as np
from pyecharts import options as opts
import json
from pandas.io.json import json_normalize
op1 = open(r'E:\study\Pyecharts\shoes.json', 'r', encoding='utf-8')
li=[]
for i in op1:
k=json.loads(i.encode("utf-8")) # 把字符串转换为json
li.append(k)
a=json_normalize(li) # 把由json数据构成的列表转换成DataFrame json_normalize:扁平化
a.sales=a.sales.str.split("人",expand=True)[0] # 源数据 "1583人付款"
a.sales = a.sales.astype(np.int64) # 转换列的类型为整数
a.price = a.price.astype(np.float) # "159.00" 价格为str类型,转换为float类型
x=[]
y=[]
y,x=np.histogram(a.price.values,np.linspace(a.price.min(),700,50),weights=a.sales.values) # 加权统计 参考以下的例子
f1=Line().add_xaxis(x.tolist()).add_yaxis("sum_people", [0]+y.tolist(),is_smooth=True) # 参考以下的例子
f1.set_global_opts(title_opts=opts.TitleOpts(title="意尔康男鞋分析"),
xaxis_opts=opts.AxisOpts(type_="value"),
datazoom_opts=opts.DataZoomOpts(is_show=True))
f1.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
f1.render_notebook()
x轴为价格 y轴为人数
histogram用法
# -*- codeing = utf-8 -*-
import numpy as np
a = [88, 99, 188, 199, 288, 299, 388, 399, 488, 499]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x = []
y = []
y, x = np.histogram(a, np.linspace(0, 500, 6), weights=b) # 加权统计
print(y)
print("**********************")
print(x)
运行结果
[ 3 7 11 15 19]
**********************
[ 0. 100. 200. 300. 400. 500.]