pyecharts分布统计图

鞋的价格为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.]

你可能感兴趣的:(pyecharts)