本文共 2286 字,大约阅读时间需要 7 分钟。
分析所用文件来源:
代码如下:
import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus']=Falsestatistics = np.load(r'C:\Users\Administrator\Documents\Tencent Files\1239112948\FileRecv\populations.npz',allow_pickle=True)data = statistics['data']feature_names = statistics['feature_names']#数据time_x = data[-3::-1,0]totle_peo = data[-3::-1,1]man_y = data[-3::-1,2]female_y = data[-3::-1,3]city_peo = data[-3::-1,4]rural_peo = data[-3::-1,5]#===========1996~2015年,男女、城乡、总人口对应的散点图# #绘图# fig = plt.figure(figsize=(7,8))# #男女图# fig.add_subplot(2,1,1)# plt.scatter(time_x,man_y)# plt.scatter(time_x,female_y)# plt.legend(['男性','女性'])# plt.xticks(time_x,rotation=45)# #乡镇图# fig.add_subplot(2,1,2)# plt.scatter(time_x,city_peo)# plt.scatter(time_x,rural_peo)# plt.legend(['城镇人口','乡村人口'])# plt.xticks(time_x,rotation=45)## plt.show()#===========1996~2015年,男女、城乡、总人口对应的折线图#绘图# fig_line = plt.figure(figsize=(7,8))# #男女图# fig_line.add_subplot(2,1,1)# plt.plot(time_x,man_y,marker='o')# plt.plot(time_x,female_y,marker='o')# plt.legend(['男性','女性'])# plt.xticks(time_x,rotation=45)## #乡镇图# fig_line.add_subplot(2,1,2)# plt.plot(time_x,city_peo,marker='*')# plt.plot(time_x,rural_peo,marker='*')# plt.legend(['城镇人口','乡村人口'])# plt.xticks(time_x,rotation=45)## plt.show()#=========城乡人口占总人数百分比与人口数柱状图# fig = plt.figure(figsize=(16,20),dpi=80)# fig.add_subplot(2,1,1)# plt.bar(time_x,totle_peo)# plt.bar(time_x,city_peo)# plt.xticks(time_x,rotation=45)# for x,y,z in zip(time_x,city_peo,totle_peo):# percent = '%.2f%%'%((y/z)*100)# plt.text(x,y+2000,percent,fontsize=9,ha='center',)# plt.legend(['总人口','城市人口'])## fig.add_subplot(2,1,2)# plt.bar(time_x,totle_peo)# plt.bar(time_x,rural_peo)# plt.xticks(time_x,rotation=45)# for x,y,z in zip(time_x,rural_peo,totle_peo):# percent = '%.2f%%'%((y/z)*100)# plt.text(x,y+2000,percent,fontsize=9,ha='center',)## plt.legend(['总人口','乡村人口'])# plt.show()##=========男女人口占总人数百分比与人口数图饼图plt.figure(figsize=(10,10))label = ['男性人口','女性人口']explode = [0.01,0.01]fig = plt.figure(figsize=(10,10),dpi=100)i=1for x, y, t in zip(man_y,female_y,time_x): fig.add_subplot(4,5,i) plt.pie([x,y],labels=label,autopct='%1.1f%%',colors=['r','b'],explode=explode) plt.title('%s'%t) i+=1plt.show()
最后一个饼图效果:
转载地址:http://wcwsi.baihongyu.com/