陳新龍
關(guān)于Python數(shù)據(jù)分析的內(nèi)容相信大家一定都不陌生,在學(xué)習(xí)Python的過(guò)程中我們接觸了許多常用的庫(kù),比如:Numpy(它給Python提供了真正的數(shù)組功能,以及對(duì)數(shù)據(jù)進(jìn)行快速處理的函數(shù))、Matplotlib(它是最著名的繪圖庫(kù),主要是二維繪圖,也可以支持簡(jiǎn)單的三維繪圖)、Pandas(它是Python下最強(qiáng)大的數(shù)據(jù)分析和探索工具);但是由于Python數(shù)據(jù)分析的知識(shí)點(diǎn)多且復(fù)雜,導(dǎo)致很多學(xué)生并不能很好地理解其中的語(yǔ)法,詢問(wèn)小陳老師有沒(méi)有其他數(shù)據(jù)分析的案例,今天我們通過(guò)Scratch編程做一個(gè)簡(jiǎn)單的成績(jī)分布柱狀圖。
通常在學(xué)??荚嚱Y(jié)束后,老師首先會(huì)批改試卷,其次根據(jù)試卷的分?jǐn)?shù)從高到低排序,查看班級(jí)中優(yōu)秀、良好、合格、不合格的人數(shù),分析試卷錯(cuò)題的知識(shí)點(diǎn),一旦班級(jí)人數(shù)和考試科目比較多,老師統(tǒng)計(jì)的工作量就非常大,消耗時(shí)間也很長(zhǎng),為了節(jié)約工作量,并且提高我們的編程能力,便可以通過(guò)Scratch完成簡(jiǎn)單的成績(jī)分布圖。
首先我們需要對(duì)成績(jī)進(jìn)行一個(gè)大致的篩選與處理,新建文本文件或者Excel文件,將同學(xué)的數(shù)據(jù)輸入到文件中,在Scratch中新建分?jǐn)?shù)列表,右鍵點(diǎn)擊列表將數(shù)據(jù)導(dǎo)入(圖1)。
導(dǎo)入成功后,通過(guò)循環(huán)變量的方式對(duì)列表中每一項(xiàng)的數(shù)據(jù)進(jìn)行提取篩選(大于90分為優(yōu)秀;80-90分為良好;60-80分為合格;小于60分為不合格)。分別創(chuàng)建四個(gè)變量“優(yōu)秀、良好、合格、不合格”用于保存統(tǒng)計(jì)結(jié)果,并且將結(jié)果存入到新列表“成績(jī)分布表”中。到此為止,我們的提取篩選步驟正式結(jié)束。接下來(lái)可以根據(jù)列表中的內(nèi)容進(jìn)行柱狀圖的繪制(圖2)。
在繪圖之前,我們需要在造型中安排好優(yōu)秀、良好、合格、不合格繪圖的位置和頂端的標(biāo)題,其次確定好起點(diǎn)和終點(diǎn)的位置距離和間隔,如圖3所示,我的起始位置為(-235,130),終點(diǎn)位置是(230,-130),中間相隔465,這里需要注意落筆和抬筆的方式(圖3)。
新建三個(gè)變量:高(通過(guò)提取成績(jī)分布列表中的數(shù)據(jù)乘以一定的倍數(shù),暫定20)、寬(根據(jù)舞臺(tái)的區(qū)域進(jìn)行設(shè)定,暫且設(shè)定為95)、間隔(根據(jù)每一段的成績(jī)與成績(jī)之間進(jìn)行相應(yīng)的間隔,暫且設(shè)定為30),這些取值并不是絕對(duì)數(shù)據(jù),大家可以根據(jù)實(shí)際的繪制效果來(lái)決定。
在列表中我們分成了四個(gè)層次階段,代表外層循環(huán)重復(fù)執(zhí)行四次,由于繪制出柱狀圖還需要增加內(nèi)循環(huán),重復(fù)執(zhí)行寬次(寬是固定值為95),確定Y軸初始坐標(biāo),不斷增加Y坐標(biāo)的高(高的值取決于成績(jī)分布列表中的數(shù)據(jù)乘以一定的倍數(shù),暫定20),每次增加1便可以完成每段的柱狀圖的繪制。還可以給柱狀圖增添上不同的顏色,容易區(qū)分成績(jī)所在的范圍(圖4)。
其實(shí)不難發(fā)現(xiàn),在Python中所實(shí)現(xiàn)的內(nèi)容,我們?cè)赟cratch中換一種方式也可以實(shí)現(xiàn),不僅僅是柱狀圖,還可以完成折線圖、餅圖、雷達(dá)圖等等。只要你有創(chuàng)意和想法,不論用任何編程語(yǔ)言,你都能發(fā)揮出真正的本事。