在学习《Python数学实验与建模》这一本书的时候,一些像我一样的初学小白可能对于有些地方不是很明白,自己把啃下来的一些东西记录一下,和大家分析,以便节省大家的学习时间。
例2.25
import numpy as np
import pandas as pd
from matplotlib.pyplot import *
a=pd.read_excel("Trade.xlsx")
#提取“年”,Date对应的是excel中的列的抬头Date
a['year']=a.Date.dt.year
a['month']=a.Date.dt.month
rc('font',family='SimHei')
ax1=subplot(2,3,1)
#下面需要统计2012年的订单量。Order class对应的是列的抬头
Class_Counts=a.Order_Class[a.year==2012].value_counts()
Class_Percent=Class_Counts/Class_Counts.sum()
# 将饼图设置为圆形(否则有点像椭圆),设置纵轴横轴比例相等
ax1.set_aspect(aspect='equal')
#pie()是绘制饼图
#autopct='%.1f%%', 饼图中添加数值标签
ax1.pie(Class_Percent,labels=Class_Percent.index,autopct="%.1f%%")
ax1.set_title("2012年各级订单比例")
ax2=subplot(2,3,2)
#统计2012年每月销售额,aggregate是面向列的聚合方法
Month_Sales=a[a.year==2012].groupby(by='month').aggregate({'Sales':np.sum})
Month_Sales.plot(title="2012年各月销售趋势",ax=ax2,legend=False)
ax2.set_xlabel('')
ax2=subplot(2,3,(3,6))
cost=a['Trans_Cost'].groupby(a['Transport'])
ts=list(cost.groups.keys())
dd=np.array(list(map(cost.get_group,ts)))
#绘制箱线图
boxplot(dd)
gca().set_xticklabels(ts)
ax4=subplot(2,3,(4,5))
#在matplotlib中,hist方法用于绘制直方图,density,指定柱子高度对应的信息,有数值和频率两种选择
#当density取值为True时,柱子的高度为每个区间的频率
#bins,控制直方图中的区间个数
hist(a.Sales[a.year==2012],bins=40,density=True)
ax4.set_title("2012年销售额分布图")
ax4.set_xlabel("销售额")
show()



