python数据分析与应用_matplotlib_实训练习

实训:分析1996-2015年人口数据特征间的关系

需求说明:人口数据6个特征:年份,年末总人口,男性人口,女性人口,城镇人口,乡村人口 。查看各个特征随时间的变化情况

1 提取数据

import numpy as np
import matplotlib.pyplot as plt
data = np.load('populations.npz',allow_pickle=True)
#data.files
dt =data['data']
df =data['feature_names']

在这里插入图片描述

2 绘制散点图和折线图

#设置中文
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus'] = False
fg =plt.figure(figsize=(10,8))
#创建子图1
ax1 =fg.add_subplot(2,1,1)
plt.scatter(range(dt.shape[0]-2),dt[:-2,1],marker='o',c='r')
plt.scatter(range(dt.shape[0]-2),dt[:-2,2],marker='D',c='b')
plt.scatter(range(dt.shape[0]-2),dt[:-2,3],marker='v',c='y')
plt.scatter(range(dt.shape[0]-2),dt[:-2,4],marker='p',c='g')
plt.scatter(range(dt.shape[0]-2),dt[:-2,5],marker='+',c='c')
plt.legend(['年末总人口','男性人口','女性人口','城镇人口','乡村人口'])
plt.xlabel('时间-年份')
plt.ylabel('人口数(万人)')
plt.xticks(range(dt.shape[0]-2),dt[:-2,0],rotation=45)
plt.title('1996-2015年各特征人口变化散点图')

#创建子图2
ax2 =fg.add_subplot(2,1,2)
plt.plot(range(dt.shape[0]-2),dt[:-2,1],c='r',linestyle='--')
plt.plot(range(dt.shape[0]-2),dt[:-2,2],c='b',linestyle='--')
plt.plot(range(dt.shape[0]-2),dt[:-2,3],c='y',linestyle='--')
plt.plot(range(dt.shape[0]-2),dt[:-2,4],c='g',linestyle='--')
plt.plot(range(dt.shape[0]-2),dt[:-2,5],c='c',linestyle='--')
plt.legend(['年末总人口','男性人口','女性人口','城镇人口','乡村人口'])
plt.xlabel('时间-年份')
plt.ylabel('人口数(万人)')
plt.xticks(range(dt.shape[0]-2),dt[:-2,0],rotation=45)
plt.title('1996-2015年各特征人口数折线图')
plt.show()

在这里插入图片描述

3 绘制直方图

#绘制直方图
f1 =plt.figure(figsize=(12,10))
#子图1
ax1 =f1.add_subplot(2,2,1)
plt.bar(range(dt.shape[0]-2),dt[:-2,2],width=0.5)
plt.xticks(range(dt.shape[0]-2),dt[:-2,0],rotation=45)
plt.xlabel('1996-2015年男性人口数目')
plt.ylabel('人口数目(万人)')

#子图2
ax2 =f1.add_subplot(2,2,2)
plt.bar(range(dt.shape[0]-2),dt[:-2,3],width=0.5)
plt.xticks(range(dt.shape[0]-2),dt[:-2,0],rotation=45)
plt.xlabel('1996-2015年女性人口数目')
plt.ylabel('人口数目(万人)')

#子图3
ax3 =f1.add_subplot(2,2,3)
plt.bar(range(dt.shape[0]-2),dt[:-2,4],width=0.5)
plt.xticks(range(dt.shape[0]-2),dt[:-2,0],rotation=45)
plt.xlabel('1996-2015年城市人口数目')
plt.ylabel('人口数目(万人)')

#子图4
ax4 =f1.add_subplot(2,2,4)
plt.bar(range(dt.shape[0]-2),dt[:-2,5],width=0.5)
plt.xticks(range(dt.shape[0]-2),dt[:-2,0],rotation=45)
plt.xlabel('1996-2015年乡村人口数目')
plt.ylabel('人口数目(万人)')
plt.show()

在这里插入图片描述

4 绘制饼图

#绘制饼图
f2 =plt.figure(figsize=(12,10))
#子图1
ax1 =f2.add_subplot(2,2,1)
plt.pie(dt[:-2,2],labels=dt[:-2,0],autopct ='%1.1f%%')
plt.title('1996-2015年男性人口比例')

#子图2
ax2 =f2.add_subplot(2,2,2)
plt.pie(dt[:-2,3],labels=dt[:-2,0],autopct ='%1.1f%%')
plt.title('1996-2015年女性人口比例')
#子图3
ax3 =f2.add_subplot(2,2,3)
plt.pie(dt[:-2,4],labels=dt[:-2,0],autopct ='%1.1f%%')
plt.title('1996-2015年城市人口比例')

#子图4
ax4 =f2.add_subplot(2,2,4)
plt.pie(dt[:-2,5],labels=dt[:-2,0],autopct ='%1.1f%%')
plt.title('1996-2015年乡村人口比例')
plt.show()

在这里插入图片描述

5 绘制线箱图

#绘制线箱图
f3 =plt.figure(figsize=(12,8))
label =['年末总人口','男性人口','女性人口','城镇人口','乡村人口']
plt.boxplot(([list(dt[:-2,i]) for i in range(1,6)]),labels =label,meanline=True)
plt.title('1996-2015年各特征人口数线箱图')
plt.ylabel('人口数(万人)')
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

なつの目

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值