绘制人口数目直方图
- 前置步骤
准备数据populations.npz,下载数据populations.npz到Linux本地的/course/DataAnalyze/data目录
- 绘制1996年~2015年男女人口及乡镇人口数目直方图
- 代码 41绘制了1996年~2015年男女人口及乡镇人口数目的直方图,能够很直观的显现1996年~2015年之间男女人口数目的变化,以及乡镇人口之间的变动。
代码 41 1996-2015年男女人口及乡镇人口数目直方图
In[1]: | import os import numpy as np import matplotlib.pyplot as plt os.chdir('/course/DataAnalyze/data') plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示 feature = np.load('./populations.npz',allow_pickle=True)['feature_names'] # 加载列名 amount = np.load('./populations.npz',allow_pickle=True)['data'] # 加载数据 #第一幅画布 p1 = plt.figure(figsize=(9,9)) #设置画布 ax1 = p1.add_subplot(2,1,1) #创建第一幅子图 plt.title('1996-2015年男女人口及乡镇人口数目直方图') plt.ylabel('人口数量') #plt.bar(amount[:,0],amount[:,2],width=0.5) #plt.bar(amount[:,0],amount[:,3],width=0.5) plt.bar(np.arange(22),amount[:,2],width=0.3) plt.bar(np.arange(22)+0.3,amount[:,3],width=0.3) plt.xticks(np.arange(22),amount[:,0],rotation = 45) ax1.legend(feature[2:4],bbox_to_anchor=(1, 1),ncol=1) #图例放图外,以免遮挡信息 ax2 = p1.add_subplot(2,1,2) #创建第二幅子图 plt.ylabel('人口数量') plt.bar(np.arange(22),amount[:,4],width=0.3) plt.bar(np.arange(22)+0.3,amount[:,5],width=0.3) plt.xticks(range(22),amount[:,0],rotation = 45) ax2.legend(feature[4:6],bbox_to_anchor=(1, 1),ncol=1) plt.savefig('1996-2015年男女人口及乡镇人口数目直方图.png') plt.show() |
Out[1]: | ![]() |
- 通过代码 41运行结果可以看出,从1996到2015年之间,男性人口与女性人口呈现递增趋势,并且男性人口一直大于女性人口;城镇人口大幅度增加,反观乡村人口则大幅度减少,乡村人口由原来是城镇人口的两倍多变为城镇人口的五分之四左右。