实训1 分析1996~2015年人口数据特征间的关系
运行环境:pycharm-community-2019.1.2
使用库:NumPy、matplotlib.pyplot
数据(populations.npz):链接:https://pan.baidu.com/s/1c_6-7EazZsvaf9of9XcLSQ 提取码:nr6p
人口数据总共有6个特征,分别为年份、年末总人口、男性人口、女性人口、城镇人口、乡村人口。查看各个特征随着时间推移发生的变化情况可以分析出未来男女人口比例、城乡人口变化的方向。
实现步骤:
- 使用NumPy库读取人口数据
- 创建画布,并添加子图
- 在两个子图上分别绘制散点图和折线图
- 显示(保存)图片
- 分析未来人口变化趋势(略)
函数名称 |
函数作用 |
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 |
在本机显示图形 |
- pyplot使用rc配置文件来自定义图形的各种默认属性,被称为rc配置或rc参数。
- 在pyplot中几乎所有的默认属性都是可以控制的,例如视图窗口大小以及每英寸点数、线条宽度、颜色和样式、坐标轴、坐标和网格属性、文本、字体等。
- 默认的pyplot字体并不支持中文字符的显示,因此需要通过设置font.sans-serif参数改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴中的部分字符无法显示,因此需要同时更改axes.unicode_minus参数。
- 除了设置线条和字体的rc参数外,还有设置文本、箱线图、坐标轴、刻度、图例、标记、图片、图像保存等rc参数。具体参数与取值可以参考官方文档。
散点图和折线图是数据分析最常用的两种图形。这两种图形都能够分析不同数值型特征间的关系。其中,散点图主要用于分析特征间的相关关系,折线图则用于分析自变量特征和因变量特征之间的趋势关系。
散点图(Scatter Diagram,又称散点分布图):
- 利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形,值由点在图表中的位置表示,类别由图表中的不同标记表示,通常用于比较跨类别的数据。
- 特征之间是否存在数值或数量的关联趋势,关联趋势是线性的还是非线性的。
- 如果某一个点或者某几个点偏移大多数点,则这些点就是集群值,通过散点图从而进一步分析这些离群值是否在建模分析中产生很大的影响。
折线图(Line Chart):
- 一种将数据点按照顺序连接起来的图形。
主要功能是查看因变量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()
运行结果:
实训1 分析1996~2015年人口数据特征间的关系相关推荐
- 应用数据分析第三周 实训1 分析1996~2015年人口数据特征间的关系
文章目录 前言 一.#实训1分析1996年~2015年人口数据特征的关系 实验结果如图所示
- 分析1996~2015年人口数据特征间的关系并分析1996~2015年人口数据各个特征的分布分散状况
python数据分析与应用 实训1 分析1996~2015年人口数据特征间的关系 并分析1996~2015年人口数据各个特征的分布分散状况 运行环境:jupyter notebook 数据:popul ...
- python人口数据分析_分析1996~2015年人口数据特征间的关系
分析1996~2015年人口数据特征间的关系 人口数据总共拥有6个特征,分别为年末总人口.男性人口.女性人口.城镇人口.乡村人口和年份.查看各个特征随着时间推移发生的变化情况可以分析男女人口比例.城乡 ...
- Python实验二:分析1996~2015年人口数据特征间的关系、分析并绘制鸢尾花数据的散点图和箱线图
人口数据下载链接:populations.npz 鸢尾花数据下载链接:鸢尾花 (下载积分已改为0,请下载) 目录 一.题目表述 1.分析1996~2015年人口数据特征间的关系 2.分析并绘制鸢尾花数 ...
- 数据可视化|实验四 分析1996-2015年人口数据特征间的关系
使用 NumPy 库读取人口数据 使用 numpy 库读取人口数据,分析 1996~2015 年人口数据特征间的关系: %matplotlib inlineimport numpy as npimpo ...
- 分析1996~2015年人口数据各个特征的分布与分散情况
分析1996~2015年人口数据各个特征的分布与分散情况 通过绘制各年份男女人口数目及城乡人口的直方图,男女人口比例及城乡人口比例的饼图开一发现人口结构的变化.而绘制每个特征的箱线图则可以发现不同特征 ...
- 产教融合 |2021年度校企协同育人实训班 重庆理工大学重庆芝诺大数据有限公司...
6月7日上午,2021年度校企协同育人实训班重庆理工大学&重庆芝诺大数据有限公司开班仪式在大渡口区移动互联网产业园隆重举行.本次实训对象为重庆理工大学金融数学专业学生. 重庆芝诺大数据有限公司 ...
- 持久层是什么意思_软件项目实训及课程设计指导—如何在数据持久层中应用DAO模式...
软件项目实训及课程设计指导--如何在J2EE应用系统数据持久层中应用DAO模式 1.为什么要在软件应用系统中提供数据持久层 软件应用系统中的数据持久层主要为整个软件应用系统提供数据访问功能服务,从而可 ...
- Bootstrap4+MySQL前后端综合实训-Day04-PM【PowerDesigner 图形化数据库设计软件(设置依赖关系、自动增长主键、生成sql语句)、SQLyog软件(备份数据库)】
[Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记] 目 录 PowerDesigner软件 5张数据表之间的依赖关系图 设置数据表的自动增长主键 ...
最新文章
- Linux RAR 安装和使用
- 说一下你对多态的理解?_掌握了多态的特性,写英雄联盟的代码更少啦!
- [css] 你对伪类了解多少?分为几大类?
- rr计算机专业英语,《计算机专业英语》电子教本8.pdf
- 【抽象代数】类方程和有限群
- C#LeetCode刷题之#674-最长连续递增序列( Longest Continuous Increasing Subsequence)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的漫画社区
- Leetcode有java版么_leetcode 1. 两数之和(Java版)
- 小心中中国移动“短号集群网”的招
- 相机标定 棋盘格 图_【连载2.3.1】结构光系统标定
- 大卫科波菲尔优秀读后感范文4000字
- 教你不要光驱一样重装系统
- numpy 矩阵运算
- pixhawk4连接PX4 Flow光流传感器调试过程记录
- Python turtle绘图(星之卡比)
- 计算机电池电源转换,图吧小白教程 篇七十七:只需一步,延长MACBOOK电池寿命(硬改电源)...
- Java 扫描识别条形码图片
- Iphone各个型号机型的尺寸
- Who wann invitation of gmail, wallop, orkut?
- 视频去水印前端界面布局