鞋的價格爲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.]