代码:利用多项式拟合淘宝双11 数据。
天猫官方公布了今年的双11成交额为2684亿元,成功刷新了自己创下的商业纪录。
代码:利用多项式拟合淘宝双11 数据。
环境:python 3.6 , jupyter Notebook
%matplotlib import matplotlib.pyplot as plt import numpy as np from matplotlib import font_manager as fm zhongwen_font = fm.FontProperties(fname='C:\Windows\Fonts\simsun.ttc') x = np.array([year for year in range(2009,2019)]) y = np.array([0.5,9.36,52,191,352,571,912,1207,1682.69,2135]) z1 = np.polyfit(x, y, 3) # 用多项式拟合 p1 = np.poly1d(z1) yvals=p1(x) plot1=plt.plot(x, y, '*',label='实际销售额') plot2=plt.plot(x, yvals, 'r',label='拟合销售额') # 设置坐标轴刻度 _xticks_labels = ["{}年".format(i) for i in x] plt.xticks(x,_xticks_labels,rotation=45,fontproperties = zhongwen_font) plt.xlabel('年份', fontproperties = zhongwen_font) plt.ylabel('销售额(亿)', fontproperties = zhongwen_font) # 绘制网格 plt.grid(alpha=0.4) # 添加图例,指定legend的位置 plt.legend(loc="best", prop = zhongwen_font) plt.title('2009-2018淘宝双11 销售额拟合曲线', fontproperties = zhongwen_font) # 图片大小和分辨率 plt.figure(figsize=(18, 18),dpi=80) plt.savefig("./taobao201911.png") plt.show() # 打印拟合多项式 print('拟合多项式:',p1) p1 = np.poly1d(z1) print("-"*40) print('2019年预测值:',p1(2019)) print('2020年预测值:',p1(2020)) print('2021年预测值:',p1(2021)) print('2022年预测值:',p1(2022))
打印结果如下: Using matplotlib backend: Qt5Agg 拟合多项式: 3 2 0.159 x - 930.2 x + 1.813e+06 x - 1.176e+09 ---------------------------------------- 2019年预测值: 2689.0133340358734 2020年预测值: 3301.523639678955 2021年预测值: 3980.3633403778076 2022年预测值: 4726.486259460449
利用三次多项式预测的数据与公布的结果确实很相近。
我们继续搞事情。
将今年2019年的2684亿导入,预测一下后面三年:
2019年预测值: 2689.0133340358734 2020年预测值: 3301.523639678955 2021年预测值: 3980.3633403778076 2022年预测值: 4726.486259460449
你对此事的看法到底如何?
绘图如下:
欢迎关注: 一只阿木木