绘制箱线图
- 前置步骤
准备数据guomin.npz,下载数据guomin.npz到Linux本地的/course/DataAnalyze/data目录
- 绘制箱线图
- pyplot中绘制箱线图的函数为boxplot,使用boxplot函数绘制17年间年各产业国民生产总值箱线图,如代码 45所示。
In[3]: | label= ['第一产业','第二产业','第三产业']##定义标签 gdp = (list(values[:,3]),list(values[:,4]),list(values[:,5])) plt.figure(figsize=(6,4)) plt.boxplot(gdp,notch=True,labels = label, meanline=True) plt.title('2000-2017各产业国民生产总值箱线图') plt.savefig('../2000-2017各产业国民生产总值箱线图.png') plt.show() |
Out[3]: | |
- 通过代码 45运行结果可以看出在2000-2017年第一产业在某一年的某个季度具有一个异常值。第三产业整体增速变大,导致了第三产业数据前半部分相对密集而后半部分相对分散。
- 绘制国民生产总值分散情况箱线图,如代码 46所示。
In[6]: | label1 = ['第一产业','第二产业','第三产业']## 标签1 label2 = ['农业','工业','建筑','批发','交通','餐饮','金融','房地产','其他']## 标签2 gdp1 = (list(values[:,3]),list(values[:,4]),list(values[:,5])) gdp2 = ([list(values[:,i]) for i in range(6,15)]) p = plt.figure(figsize=(8,8)) ## 子图1 ax1 = p.add_subplot(2,1,1) plt.boxplot(gdp,notch=True,labels = label1, meanline=True)## 绘制散点图 plt.title('2000-2017各产业国民生产总值箱线图') plt.ylabel('生产总值(亿元)') #添加y轴名称 ##子图2 ax2 = p.add_subplot(2,1,2) plt.boxplot(gdp2,notch=True,labels = label2, meanline=True)## 绘制散点图 plt.title('2000-2017各行业国民生产总值箱线图') plt.xlabel('行业') #添加横轴标签 plt.ylabel('生产总值(亿元)') #添加y轴名称 ##保存并显示图形 plt.savefig('../国民生产总值分散情况箱线图.png') plt.show() |
Out[6]: |
- 通过代码 46运行结果可以看出,由于整体经济是上升趋势的,结合箱线图可以看出产业中的第二产业增长平缓。行业中的工业与餐饮的增长比较平缓,其他行业,批发行业,建筑行业,金融行业和房地产行业增速均有所加快。