Python在高考数据可视化分析中的应用

2022-04-02 03:32王渚,杨耀,符致翔
电脑知识与技术 2022年33期
关键词:数据分析可视化

王渚,杨耀,符致翔

摘要:随着教育信息化2.0的发布,各教育部门及中学都开始提高自身信息化的水平。尤其是在成绩分析上。教育部门经常会汇总高考数据进行分析,学校同时也会根据分析结果决定教学策略。本文采用Python的Numpy、Pandas、Matplotlib、Wordcloud等第三方数据处理可视化库,以2016年—2020年广东省高考数据为案例进行数据可视化分析应用讲解,为学校和教育部门做成绩数据分析提供参考。

关键词:高考成绩;Python;数据分析;可视化

中图分类号:TP391        文献标识码:A

文章编号:1009-3044(2022)33-0093-04

1 引言

在我国教育信息化2.0的深入推动下,信息技术已融入各个教育领域之中。尤其是智慧校园、成绩分析等。在每年高考之后,教育部门及各中学都会对高考成绩进行分析形成大量的高考数据,如考生信息、考试成绩、报考信息、近5年录取情况、近5年最低分等。不仅仅是加强教育考试信息化管理工作,同时学校可以根据分析数据分享给学生以此帮助他们更好的選择高校。

而Python在海量相关数据信息快速准确获取和数据分析过程中,具有较强的数据分析优势[1]。一是Python语言的简易、便捷特点;二是自身有着强大的爬取网络数据的模板;三是其自身有着大量用于数据可视化分析的第三方开源库。而这些优点可以快速准确获取海量数据信息资源并且能够完成数据相关信息的提取以及进行强有力的数据可视化分析。本文应用Python的数据处理技术及可视化技术,以广东省2016—2020年高考成绩为了案例进行分析以及可视化,分析广东省高考分数线的趋势。为之后教育部门及各中学做成绩分析提供参考指导作用。

2 数据可视化分析原理及流程

2.1 数据可视化原理

数据可视化,是指将大量相关数据形成,通过图像的形式表达,如:词云图、热力图、雷达图等等。这样能够清晰有效地传达与沟通信息。其基本思想,是将数据库中每一个数据项作为单个图元元素表示,大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形式表示,可以从不同的维度观察数据,从而对数据进行更深入的观察和分析[2]。其基本手段主要是借助图形化的手段将数据表达处理,但在这一基础上,考虑到一些相当稀疏而又复杂的数据集,因此又要加上了美学设计思维。

2.2 数据可视化流程

一切能够用图形或图像表达的数据都能进行数据可视化,主要是看其自身需要用哪种图表达数据。其一般流程如图1:

2.2.1 数据采集

数据采集是数据可视化的第一步,正所谓“巧妇难为无米之炊”,要能实现数据可视化首先要有数据。数据采集的方式有很多,具体如下图2。对于一些主观性的数据或者地区集中性的数据一般采取问卷调查,线下访谈等形式;而对于庞大的开放性数据或者一些平台数据一般采用爬虫或者软件API调取等方式。

2.2.2 数据处理和变换

数据处理和变换,是进行数据可视化的前提条件,主要分为数据预处理和数据挖掘两个过程[3]。

数据预处理是指在数据进行主要处理之前对数据进行的处理,因为我们前期采集到的数据往往包含了一些重复的、乱填的等。这类数据的质量较低,为了保证数据的效度和信度,我们通常会选择对数据进行预处理。预处理的方法一般有四种:数据清理、数据集成、数据变换、数据规约。

数据挖掘是因为数据的特征、模式往往隐藏在海量的数据中,需要进行更深一步的数据挖掘才能获取到。比如数据的预测性分析、数据的方差、回归分析等。

2.2.3 可视化映射

可视化映射是指把经过处理后的数据信息通过图形、图像表达出来的过程,目前市面上有很多做可视化分析的平台如Smartbi。通常人们也会用Excel、Python、Matlab等技术实现来实现数据可视化。

3 Python数据可视化分析

Python语言是当下最热门的语言之一。其自身语法易懂的特点深受人们的喜欢。主要用于Web开发、爬虫、人工智能和科学计算等领域。

Python语言其自身携带多种用于数据分析及可视化映射的第三方开源库,如:Numpy、pandas、Matplotlib、Scikit-learn等。

Numpy:Python用于实现的科学计算库。其提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数据处理而产生[4]。

Pandas:是基于NumPy的一种工具,该工具是为解决数据分析任务而创建的,其纳入了大量库和一些标准的数据模型,提供高效操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。如DataFrame、isnull()、notnull()、dropna()、fillna))等函数[5]。

Matplotlib:Python语言中的可视化程序库,其自身提供了完整的2D图形以及部分3D图像转换支持,是目前Python语言中使用最广泛的绘图库。

Scikit-learn:是针对Python 编程语言的免费软件机器学习库。它具有各种分类,回归和聚类算法,包括支持向量机、随机森林、梯度提升、k均值和DBSCAN,并且一般与Python数值科学库NumPy和SciPy联合使用[6]。

4 高考数据分析可视化应用

笔者这里采取用Python技术对高考数据进行分析应用。其目的是在之后各中学在为应届生根据考试成绩选择院校或为应届生做未来目标时提供一些参考技术指导。因此,在数据方面上采取了广东省近5年的高考成绩为案例进行分析,又因为考虑到2021年广东省进行了高考改革,其数据量过少,再加上本身是做参考指导作用,所以最终数据确定为广东省2016年至2020年的高考成绩。

4.1 数据采集

广东省2016年至2020年的高考数据过于庞大,外加上网络上已经有大量对应的数据,因此本文的数据采集主要来源于互联网上各大高考数据线上平台,通过运用Python网络爬虫的技术获取高考数据,主要步骤是找到存储需要信息的网址,并根据网页信息分析网页结构,最后编写合适的代码进行数据采集。本文以采集高考网高考数据为例,具体代码如下:

import pandas     #导入pandas库

import requests    #导入reguests库

#采集网页信息

data=requests.get(r'http://www.gaokao.com/guangdong/fsx/')

#读取网页中以表格形式存在的信息

table_data = pd.read_html(html_data.content)

4.2 数据预处理

本文采用Python中的Pandas库对采集的高考数据进行预处理,Pandas庫中专门提供了用于数据预处理的很多函数与方法,用于替换异常数据、合并数据、重塑数据等,是数据预处理的重要工具。本文将采集到的数据从数据表中导出,运用Pandas库根据类型属性转化为DataFrame对象,并利用Pandas库中的isnull()、notnull()、dropna()、fillna()等函数对高考数据进行空值的检查以及填充或删除处理。最后运用groupby(),agg()函数对处理好的数据进行分组与聚合,将高考数据分为广东省高考投档分数线以及各高校最低录取分数线两类,并以此数据形成易于进行可视化的数据结构。

4.3 可视化分析

4.3.1 2016~2020年广东省高考文理科分数线分析

在分数线的分析中,以X轴代表年份,Y轴作为分数,分别用两条不一样颜色的虚线标记优先投档线以及本科批分数线,绘制广东近五年的高考分数线的变化的折线图,绘制图3和图4的具体代码如下:

#导入matplotlib.pyplot库并命名为plt

import matplotlib.pyplot as plt

x = [2016,2017,2018,2019,2020]

#历年优先投档线

data1 = [508, 485, 500, 495, 524]

#本科批投档线

data2 = [402, 360, 376, 390, 410]

#年份坐标

plt.xticks([2016,2017,2018,2019,2020])   plt.ylim([300,600])

#插入图例高考分数线和本科批并用不同的颜色表示

plt.plot(x,data1,label="高分优投线", marker=">",color='r',linewidth=3,linestyle='--')

plt.plot(x, data2, label="本科批", marker="s", color='b', linewidth=3, linestyle='--')

for i, j in zip(x, data1):

plt.text(i, j, j, va='bottom', fontsize=20, ha='center')

for i, j in zip(x, data2):

plt.text(i, j, j, va='bottom', fontsize=20, ha='center')

plt.legend(loc=9)

plt.rcParams['font.sans-serif']=['Simhei']

plt.show()

从图3和图4的数据显示,2016年到2020年间,理科分数线2020年优先投档线和本科批分数线分数最高,文科则是2018年一本分数线最高,2019年本科批分数线最高。近五年的分数线呈现出分数线震荡递增的趋势。从折线图表示,我们可以发现理科的本科批分数线从2017年开始就一直向上增,这对选理科的同学来说需要下更大的努力,按这种趋势预判之后的本科批分数会更高,而对于文科生来说虽存在一定的波动,但波动范围不大。

折线图是用直线段将各数据点连接起来而组成的图形,以折线的方式可视化显示数据的变化趋势,适用于显示在相等时间间隔下数据变化的趋势[7]。各中学可以通过折线图看往年成绩趋势,去完善学校自身的教学计划。学生同时也可以根据往年分数线来预测自己的学习状况,进一步调整自己的复习计划。

4.3.2 广东省各高校最低录取分数线分析(分数线与高校最低分数线的比较)

柱形图是一种以长方形的长度为变量的统计图表,同时柱形图还能表示不同学校五年间的录取分数平均分,以柱形的方式展现文理科在2016-2020年部分高校的录取平均分,据图5和图6的数据显示,2016-2020这五年间,重点大学之间文理科分数平均分差距较小,且大部分超过历年分数线平均分,以中山大学为例,文理科平均分都比历年分数线平均分高出将近六十分,普通大学文理科分数平均分差距较大,而且部分院校在文理科录取分数线平均分上也有差距。近五年的录取分数线平均分较为平稳,文科分数线平均分在530分上下波动,理科分数线平均分在490分上下波动,

柱形图是大家做成绩分析经常用的手段,其优点是能直观对比成绩,并且有平均成绩作为基线,学校可以通过展示预测平均分以此来激励学生尽可能在每一次模考的成绩超过平均分。而且各考生可以根据近五年文理科分数线平均分预测高考录取的分数线,确定心仪的院校并调整学习计划。

4.3.3 广东省各高校5年分数线差值词云分析

词云是对文本中呈现频率较高的关键词给予视觉上的冲击,形成关键词渲染,从而过滤掉大量频率较低的文本信息,使人能更直观地看到频率高且重要的文本信息,将高校2016-2020年最低分数线的差值转化为高校名字在文本出现的频率,然后运用Wordcloud库生成词云图。由图7和图8可知,在五年间,深圳大学理科最低录取分数线的变化差值最大,北京理工大学珠海学院的文科最低录取分数线的变化差值最大。同时,可以看出,在文科和理科的最低录取分数线上,深圳大学和北京理工大学珠海学院的变化都是比较大的,这就需要广东省考生在填报志愿的时候对这两所学院进行进一步的考量,以免分数线变化较大导致填报志愿失败。

5 总结展望

本文针对广东省2016年—2020年高考数据可视化的统计、分析为案例进行参考分析。通过基于Python的第三方库,对广东省高考数据进行数据采集、数据预处理,以及使用Matplotlib、Wordcloud第三方数据可视化库对广东省高考数据进行了可视化处理,使考生能更直观地看到近几年高考的录取数据情况,并能够根据此数据了解广东省高考分数线的变化趋势以及各广东省高校的最低录取分数线和变化较大的院校,从而根据高考分数选择心仪的院校。虽然本次案例分析的数据没有用的最新的2021年高考成绩,主要是因为2021年是广东省新高考改革第一年,其数据量过少。再者是因为代码是万变不离其宗的,因此并不会有过多的误差影响。

用Python语言进行成绩可视化分析,从语言特点上来说,Python语言技术是相对比较容易学习的技术,外加国家最近在推动教育信息化2.0技术,因此学校和教育部门可以采纳其技术,不仅能提高其自身信息化水平,同时操作也很简易。而且对学校来说,在之后的考试成绩分析用Python进行分析,能够根据自己的需求生成相对应的可视化图表,方便教师及学生参考,同时为之后学校决策提供科学依据。

参考文献:

[1] 陶鹏,杨俊丽.基于Python的可视化数据分析平台设计与实现[J].信息记录材料,2021,22(8):38-39.

[2] 贺全兵.可视化技术的发展及应用[J].中国西部科技,2008,7(4):4-7.

[3] 陈海洋,陈聪.大数据技术应用考研数据可视化开发与设计[J].卫星电视与宽带多媒体,2021(11):69-70.

[4] 鞠文飞. Python结合大数据技术分析教务数据[J]. 环球市场,2019(28):374-375.

[5] 王申. 大数据时代下的图书馆建设与应用研究--个性化实时推荐系统的建立[C]. //2017年全國图书馆新型服务能力建设学术研讨会论文集. 2017:49-61.

[6] 秦臻.基于上下文感知回归森林模型的X射线头影测量图像解剖标志点自动定位和分析系统研究[D].南京:南京邮电大学,2019.

[7] 周奕洋,钱庆.肿瘤流行病数据可视化系统设计[C]//中华医学会第二十一次全国医学信息学术会议论文汇编.郑州,2015:579-585.

【通联编辑:王力】

猜你喜欢
数据分析可视化
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
浅析大数据时代对企业营销模式的影响