文/陈新龙
关于Python数据分析的内容相信大家一定都不陌生,在学习Python过程中我们接触了许多常用的库,比如:Numpy(它给Python提供了真正的数组功能,以及对数据进行快速处理的函数)、Matplotlib(它是最著名的绘图库,主要是二维绘图,也可以支持简单的三维绘图)、Pandas(它是Python下最强大的数据分析和探索工具);但是由于Python数据分析的知识点多且复杂,导致很多学生并不能很好的理解其中的语法,询问小陈老师有没有其他数据分析的案例,今天我们通过Scratch编程做一个简单的成绩分布柱状图。
通常在学校考试结束后,老师首先会批改试卷,其次根据试卷的分数从高到低排序,查看班级中优秀、良好、合格、不合格的人数,分析试卷错题的知识点,一旦班级人数和考试科目比较多,老师统计的工作量就非常大,消耗时间也很长,为了节约工作量,并且提高我们的编程能力,便可以通过Scratch完成简单的成绩分布图。
首先我们需要对成绩进行一个大致的筛选与处理,新建文本文件或者Excel文件,将同学的数据输入到文件中,在Scratch中新建分数列表,右键点击列表将数据导入(图1)。
导入成功后,通过循环变量的方式对列表中每一项的数据进行提取筛选(大于90分为优秀;80分-90分间为良好;60-80分间为合格;小于60分为不合格)。分别创建四个变量“优秀、良好、合格、不合格”用于保存统计结果,并且将结果存入到新列表“成绩分布表”中。到此为止,我们的提取筛选步骤正式结束。接下来可以根据列表中的内容进行柱状图的绘制(图2)。
在绘图之前,我们需要在造型中安排好优秀、良好、合格、不合格绘图的位置和顶端的标题,其次确定好起点和终点的位置距离和间隔,如图3所示,我的起始位置为(-235,130)终点位置是(230,-130)中间相隔465,这里需要注意落笔和抬笔的方式(图3)。
新建三个变量:高(通过提取成绩分布列表中的数据乘一定的倍数,暂定20),宽(根据舞台的区域进行设定,暂且设定为95),间隔(根据每一段的成绩与成绩之间进行相应的间隔,暂且设定为30),这些取值并不是绝对数据,大家可以根据实际的绘制效果来决定。
在列表中我们分成了四个层次阶段,代表外层循环重复执行四次,由于绘制出柱状图还需要增加内循环,重复执行宽次(宽是固定值为95),确定Y轴初始坐标,不断增加Y坐标的高(高的值取决于成绩分布列表中的数据乘一定的倍数,暂定20),每次增加1便可以完成每段的柱状图的绘制。还可以给柱状图增添上不同的颜色,容易区分成绩所在的范围。
其实不难发现,在Python中所实现的内容,我们在Scratch中换一种方式也可以实现,不仅仅是柱状图,还可以完成折线图、饼图、雷达图等等。只要你有创意和想法,不论用任何编程语言,你都能发挥出真正的本事。