代码:利用多项式拟合淘宝双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

 你对此事的看法到底如何?

 绘图如下:



欢迎关注: 一只阿木木