大数据技术(第3节实验课----利用Matplotlib绘制各类图像)

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

import numpy as np
import matplotlib.pyplot as plt
#扩展语言,使中文可以使用
plt.rcParams["font.sans-serif"]="SimHei"
plt.rcParams["axes.unicode_minus"]=False

#读取数据
t=np.load('G:/大数据实验数据库/1.78P实训/populations.npz',allow_pickle=True)
#print(t.keys())             #查看读取的数据类型
name=t["data"]              #读取x轴数据
values=t["feature_names"]   #读取y轴数据

#创建年份数字时间轴
yearlist=[]
for i in t["data"][0:20:,0]:
    yearlist.append(int(i[0:len(i)-1]))
  

 #创建图框
p1=plt.figure(figsize=(20,18),dpi=80)  


#子图1---------------------------------------
ax1=p1.add_subplot(2,2,1)   
plt.xlim((1996,2016)) 
plt.xticks(yearlist,t["data"][0:20:,0],rotation=45)

#图像备注
plt.title("1996-2015年人口变化的散点图",size=30)  #标题    size定义字体大小
plt.xlabel("时间",size=25)      #x轴名称
plt.ylabel("人口数量",size=25)  #y轴名称   

#绘制图像
plt.scatter(yearlist,t["data"][0:20:,1])  
plt.scatter(yearlist,t["data"][0:20:,2])  
plt.scatter(yearlist,t["data"][0:20:,3])  
plt.scatter(yearlist,t["data"][0:20:,4])  
plt.scatter(yearlist,t["data"][0:20:,5])  
plt.legend(["年末人口数","男性人口","女性人口","城镇人口","农村人口"])  #函数线标注


#子图2--------------------------------------
ax2=p1.add_subplot(2,2,2)  
plt.xlim((1996,2016)) 
plt.xticks(yearlist,t["data"][0:20:,0],rotation=45)

#图像备注
plt.title("1996-2015年人口变化的折线图",size=30)  
plt.xlabel("时间",size=25)    
plt.ylabel("人口数量",size=25)   

#绘制图像(选取不同的特征颜色表示)
plt.plot(yearlist,t["data"][0:20:,1],color="r",linestyle="--")  #t["data"][0:20:,1]  读取列表t["data"]中,第0到20行,第1列的数据
plt.plot(yearlist,t["data"][0:20:,2],color="g",linestyle="--")
plt.plot(yearlist,t["data"][0:20:,3],color="b",linestyle="--")
plt.plot(yearlist,t["data"][0:20:,4],color="c",linestyle="--")
plt.plot(yearlist,t["data"][0:20:,5],color="y",linestyle="--")
plt.legend(["年末人口数","男性人口","女性人口","城镇人口","农村人口"])  #函数线标注
plt.show()#展示

在这里插入图片描述

实训2 分析1996-2015年人口数据各个特征的分布与分散状况

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]="SimHei"
plt.rcParams["axes.unicode_minus"]=False
data=np.load('G:/大数据实验数据库/1.78P实训/populations.npz',allow_pickle=True)
def getKeys(data):
    ks=[]
    for i in data.keys():
        ks.append(i)
    return ks

keys = getKeys(data)
values = data[keys[0]][-3::-1,:]
name=data['feature_names']


p = plt.figure(figsize=(15,20))
label=['男性人口','女性人口','城镇人口','乡村人口']

explode=[0.01,0.01,0.01,0.01]
gdp=(list(values[:,2]),list(values[:,3]),list(values[:,4]),list(values[:,5]))


#子图1
ax1 =p.add_subplot(3,1,1)
plt.title('1996-2015年人口数据特征间的关系直方图')
plt.xlabel('类别')
plt.ylabel('人口数(万人)')
plt.bar(range(4),values[0,2:6],width=0.5)
plt.xticks(range(4),label)


#子图2
ax2 = p.add_subplot(3,1,2)
plt.title('1996-2015年人口数据特征间的关系饼图')
plt.pie(values[0,2:6],explode=explode,labels=label,autopct='%1.1f%%')


#子图3
ax3 = p.add_subplot(3,1,3)
plt.title('1996-2015年人口数据特征间的关系箱线图')
plt.boxplot(gdp,notch=True,labels=label,meanline=True)

plt.show()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值