运行环境:pycharm-community-2019.1.2
使用库:NumPy、matplotlib.pyplot
数据(populations.npz):链接:https://pan.baidu.com/s/1c_6-7EazZsvaf9of9XcLSQ 提取码:nr6p
人口数据总共有6个特征,分别为年份、年末总人口、男性人口、女性人口、城镇人口、乡村人口。查看各个特征随着时间推移发生的变化情况可以分析出未来男女人口比例、城乡人口变化的方向。
函数名称 |
函数作用 |
plt.figure |
创建一个空白画布,可以指定画布大小,像素 |
figure.add_subplot |
创建并选中子图,可以指定子图的行数,列数,与选中图片编号 |
plt.title |
在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数 |
plt.xlabel |
在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数 |
plt.ylabel |
在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数 |
plt.xlim |
指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识 |
plt.ylim |
指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识 |
plt.xticks |
指定x轴刻度的数目与取值 |
plt.yticks |
指定y轴刻度的数目与取值 |
plt.legend |
指定当前图形的图例,可以指定图例的大小、位置、标签 |
plt.savafig |
保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数 |
plt.show |
在本机显示图形 |
散点图和折线图是数据分析最常用的两种图形。这两种图形都能够分析不同数值型特征间的关系。其中,散点图主要用于分析特征间的相关关系,折线图则用于分析自变量特征和因变量特征之间的趋势关系。
主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化。
import numpy as np
import matplotlib.pyplot as plt
#实训1 分析1996~2015年人口数据特征间的关系
#使用numpy库读取人口数据
data=np.load('F:/data/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数组,视为数据的存在位置
p1=plt.figure(figsize=(12,12))#确定画布大小
pip1=p1.add_subplot(2,1,1)#创建一个两行一列的子图并开始绘制
#在子图上绘制散点图
plt.scatter(values[0:20,0],values[0:20,1],marker='8',color='red')
plt.ylabel('总人口(万人)')
plt.legend('年末')
plt.title('1996~2015年末与各类人口散点图')
pip2=p1.add_subplot(2,1,2)#绘制子图2
plt.scatter(values[0:20,0],values[0:20,2],marker='o',color='yellow')
plt.scatter(values[0:20,0],values[0:20,3],marker='D',color='green')
plt.scatter(values[0:20,0],values[0:20,4],marker='p',color='blue')
plt.scatter(values[0:20,0],values[0:20,5],marker='s',color='purple')
plt.xlabel('时间')
plt.ylabel('总人口(万人)')
plt.xticks(values[0:20,0])
plt.legend(['男性','女性','城镇','乡村'])
#在子图上绘制折线图
p2=plt.figure(figsize=(12,12))
p1=p2.add_subplot(2,1,1)
plt.plot(values[0:20,0],values[0:20,1],color='r',linestyle='--',marker='8')
plt.ylabel('总人口(万人)')
plt.xticks(range(0,20,1),values[range(0,20,1),0],rotation=45)#rotation设置倾斜度
plt.legend('年末')
plt.title('1996~2015年末总与各类人口折线图')
p2=p2.add_subplot(2,1,2)
plt.plot(values[0:20,0],values[0:20,2],'y-')
plt.plot(values[0:20,0],values[0:20,3],'g-.')
plt.plot(values[0:20,0],values[0:20,4],'b-')
plt.plot(values[0:20,0],values[0:20,5],'p-')
plt.xlabel('时间')
plt.ylabel('总人口(万人)')
plt.xticks(values[0:20,0])
plt.legend(['男性','女性','城镇','乡村'])
#显示图片
plt.show()