数据可视化|实验五 分析1996-2015年人口数据各个特征的分布与分散状况

该博客使用NumPy库加载人口数据,通过直方图、饼图和箱线图展示了1996年和2015年中国男性与女性、城镇与乡村人口的数量对比。直方图直观地比较了各年份的男性和女性人口,饼图展示了人口比例分布,箱线图则揭示了人口数据的分布特征。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 NumPy 库读取人口数据

使用 numpy 库读取人口数据,分析 1996~2015 年人口数据特征间的关系。

%matplotlib inline

import numpy as np

import matplotlib.pyplot as plt
# 实训 1 分析 1996~2015 年人口数据特征间的关系
#使用 numpy 库读取人口数据
data=np.load('./populations.npz',allow_pickle=True)
print(data.files)# 查看文件中的数组
print(data['data'])
print(data['feature_names'])
plt.rcParams['font.sans-serif']='SimHei'# 设置中文显示
name=data['feature_names']# 提取其中的 feature_names 数组,视为数据的标签
values=data['data']# 提取其中的 data 数组,视为数据的存在位置

在这里插入图片描述

创建 3 幅画布并添加对应数目的子图

%matplotlib inline

import numpy as np

import matplotlib.pyplot as plt
# 实训 1 分析 1996~2015 年人口数据特征间的关系
#使用 numpy 库读取人口数据
data=np.load('./populations.npz',allow_pickle=True)
plt.rcParams['font.sans-serif']='SimHei'# 设置中文显示
name=data['feature_names']# 提取其中的 feature_names 数组,视为数据的标签
values=data['data']# 提取其中的 data 数组,视为数据的存在位置
label1=['男性','女性']
label2=['城镇','乡村']
#1. 直方图
p1=plt.figure(figsize=(12,12))
# 子图 1
a1=p1.add_subplot(2,2,1)
plt.bar(range(2),values[19,2:4],width=0.5,color='orange')
plt.ylabel(' 人口(万人) ')
plt.ylim(0,80000)
plt.xticks(range(2),label1)
plt.title('1996 年男、女人口数直方图 ')
# 子图 2
b1=p1.add_subplot(2,2,2)
plt.bar(range(2),values[0,2:4],width=0.5,color='red')
plt.ylabel(' 人口(万人) ')
plt.ylim(0,80000)
plt.xticks(range(2),label1)
plt.title('2015 年男、女人口数直方图 ')
# 子图 3
c1=p1.add_subplot(2,2,3)
plt.bar(range(2),values[19,4:6],width=0.5,color='orange')
plt.xlabel(' 类别 ')
plt.ylabel(' 人口(万人) ')
plt.ylim(0,90000)
plt.xticks(range(2),label2)
plt.title('1996 年城、乡人口数直方图 ')
# 子图 4
d1=p1.add_subplot(2,2,4)
plt.bar(range(2),values[0,4:6],width=0.5,color='red')
plt.xlabel(' 类别 ')
plt.ylabel(' 人口(万人) ')
plt.ylim(0,90000)
plt.xticks(range(2),label2)
plt.title('2015 年城、乡人口数直方图 ')
ex=[0 for x in data]
ex[0] = 0.015
#2. 饼图
p2=plt.figure(figsize=(8,8))
# 子图 1
a2=p2.add_subplot(2,2,1)
plt.pie(values[19,2:4],explode=ex,labels=label1,colors=['pink','crimson'],autopct='%1.1f%%')
plt.title('1996 年男、女人口数饼图 ')
# 子图 2
b2=p2.add_subplot(2,2,2)
plt.pie(values[0,2:4],explode=ex,labels=label1,colors=['PeachPuff','skyblue'],autopct='%1.1f%%')
plt.title('2015 年男、女人口数饼图 ')
# 子图 3
c2=p2.add_subplot(2,2,3)
plt.pie(values[19,4:6],explode=ex,labels=label2,colors=['pink','crimson'],autopct='%1.1f%%')
plt.title('1996 年城、乡人口数饼图 ')
# 子图 4
d2=p2.add_subplot(2,2,4)
plt.pie(values[0,4:6],explode=ex,labels=label2,colors=['PeachPuff','skyblue'],autopct='%1.1f%%')
plt.title('2015 年城、乡人口数饼图 ')
#3. 箱线图
p3=plt.figure(figsize=(10,10))
plt.boxplot(values[0:20,1:6],notch=True,labels=[' 年末 ',' 男性 ',' 女性 ',' 城镇 ',' 乡村 '],meanline=True)
plt.xlabel(' 类别 ')
plt.ylabel(' 人口(万人) ')
plt.title('1996~2015 年各特征人口箱线图 ')
# 显示
plt.show()

在每一幅子图上绘制对应的图形

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值