绘制直方图
- 前置步骤
准备数据guomin.npz,下载数据guomin.npz到Linux本地的/course/DataAnalyze/data目录
- 绘制直方图
- pyplot中绘制直方图的函数为bar,使用bar函数绘制2017年第一季度各产业国民生产总值直方图,如代码 41所示。
In[1]: | import os import numpy as np import matplotlib.pyplot as plt os.chdir('/course/DataAnalyze/data') plt.rcParams['font.sans-serif'] = 'WenQuanYi Zen Hei' ## 设置中文显示 plt.rcParams['axes.unicode_minus'] = False data = np.load('./guomin.npz') name = data['columns'] ## 提取其中的columns数组,视为数据的标签 values = data['values']## 提取其中的values数组,数据的存在位置 label = ['第一产业','第二产业','第三产业']## 刻度标签 plt.figure(figsize=(6,5)) ##设置画布 plt.bar(range(3),values[-1,3:6],width = 0.5)## 绘制散点图 plt.xlabel('产业') #添加横轴标签 plt.ylabel('生产总值(亿元)') #添加y轴名称 plt.xticks(range(3),label) plt.title('2017年第一季度各产业国民生产总值直方图') #添加图表标题 plt.savefig('../2017年第一季度各产业国民生产总值直方图.png') plt.show() |
Out[1]: | ![]() |
- 通过代码 41运行结果可以看出,2017年第一季度的第一产业生产总值不到第二产业的六分之一,基本与第三产业的十分之一持平。第二产业生产总值和第三产业生产总值相差大约三分之一。
- 绘制国民生产总值构成分布直方图,如代码 42所示。
In[4]: | label1 = ['第一产业','第二产业','第三产业']## 刻度标签1 label2 = ['农业','工业','建筑','批发','交通','餐饮','金融','房地产','其他']## 刻度标签2 p = plt.figure(figsize=(12,12)) ## 子图1 ax1 = p.add_subplot(2,2,1) plt.bar(range(3),values[0,3:6],width = 0.5)## 绘制散点图 plt.xlabel('产业') #添加横轴标签 plt.ylabel('生产总值(亿元)') #添加y轴名称 plt.xticks(range(3),label1) plt.title('2000年第一季度国民生产总值产业构成分布直方图') ##子图2 ax2 = p.add_subplot(2,2,2) plt.bar(range(3),values[-1,3:6],width = 0.5)## 绘制散点图 plt.xlabel('产业') #添加横轴标签 plt.ylabel('生产总值(亿元)') #添加y轴名称 plt.xticks(range(3),label1) plt.title('2017年第一季度国民生产总值产业构成分布直方图') ##子图3 ax3 = p.add_subplot(2,2,3) plt.bar(range(9),values[0,6:],width = 0.5)## 绘制散点图 plt.xlabel('行业') #添加横轴标签 plt.ylabel('生产总值(亿元)') #添加y轴名称 plt.xticks(range(9),label2) plt.title('2000年第一季度国民生产总值行业构成分布直方图') #添加图表标题 ##子图4 ax4 = p.add_subplot(2,2,4) plt.bar(range(9),values[-1,6:],width = 0.5)## 绘制散点图 plt.xlabel('行业') #添加横轴标签 plt.ylabel('生产总值(亿元)') #添加y轴名称 plt.xticks(range(9),label2) plt.title('2017年第一季度国民生产总值行业构成分布直方图') #添加图表标题 ##保存并显示图形 plt.savefig('../国民生产总值构成分布直方图.png') plt.show() |
Out[4]: | ![]() |
- 通过代码 43运行结果可以看出,第一产业与第二产业第三产业国民生产总值差距愈发巨大。根据坐标轴变化,可以发现国民生产总值增长接近10倍。2000年至2017年金融行业与其他行业增长幅度相较其他行业明显。