【编程生活】python实现成绩可视化数据分析

本文介绍了一款用于成绩分析的Python软件,旨在帮助用户理解考试中的强项和弱项。该软件读取用户输入的成绩数据,利用matplotlib库生成可视化图表,支持单次和多次考试成绩的分析,以辅助制定复习计划。文章详细阐述了软件的设计初衷、功能实现、代码实现过程及未来改进方向。
摘要由CSDN通过智能技术生成

0. 这个软件是做什么的呢?

设计这个软件的初衷

熟悉我的朋友都很清楚,我做的很多小软件其实都是用来解决我生活中遇到的实际问题的。这一次也一样,我在2021年参加了JLPT日语能力考试,这个软件便是用于我这一次考试的备考的。
同时,这个代码也可以用来练习数据可视化,记录数据并绘制折线图等功能在深度学习(绘制loss和acc等数据曲线),后端分析(访问量,网速等数据曲线绘制)等都有很大用处。现在实现这个代码不但可以用来用作我个人的成绩分析,还可以用于练习这一领域的代码实现。

软件要实现的功能

  1. 对用户输入的单次测试的各题型成绩进行可视化,帮助用户了解自己在考试中的优势部分和不足部分。
  2. 对多次考试成绩进行可视化分析,帮助用户针对性制定复习计划。

1.功能实现

本软件主要使用的第三方依赖库是matplotlib,本文将以JLPT模拟测试作为使用情景,应对不同的数据分析情节请灵活更改后使用!

输入成绩并输出可视化结果

1. 输入成绩

1.1 读入数据的类别与小项:

由于试题类别是相对固定的信息,因此可以提前准备好,在本程序中我使用了一个外部txt进行信息读取,格式为如图:
txt格式和信息
图片内的信息将被自动读取出类别和小项,实现代码如下:

def ReadPart(path):
    with open(path,encoding='utf-8') as txt_r:
        txt = txt_r.readlines()
    classes = []
    for line in txt:
        MessLine = line.replace('\n','').split(':')
        classes.append(MessLine)
    return classes
1.2 输入成绩:

程序会读取上述的txt,随后要求用户输入数据,并通过python中的dict类型将数据进行规整并返回类别名和数据,代码如下:

def GetMess(parts):
    PartTitle = parts[0]
    kinds = parts[1].split(',')
    print("现在输入{}部分成绩".format(PartTitle))
    print("="*30)
    ThisPart = {
   }
    for part in kinds:
        s_input = input("请输入{}部分成绩,格式为:正确数,总数  ".format(part))
        s = s_input.replace(',','/')
        ThisPart[part] = s
    return PartTitle,(ThisPart)

返回的数据同样也装载入命名为TotalMess的Dict之中,即所有数据输入完毕后的数据将为:

['类别'1:['小项1-1','小项1-2'],'类别2'['小项2-1','小项2-2'],'类别3['小项3-1','小项3-2']']

2. 输出记录并输出可视化视图

2.1 输出成绩记录

在上面的步骤中我们已经完成了对数据的整理,对于已经完成规整的数据对其进行格式化的输出就是非常简单的了,这里用一个WriteLog方法进行写入:
所有数据收集完毕后就可以对数据进行规整并写出数据记录,代码如下:

def WriteLog(Title,Mess):
    WritingPaper = []
    for kind in Mess:
        WritingPaper.append("{}: \n{}\n".format(kind,'+'*15))
        for part in Mess[kind]:
            line = "  {}:{}\n".format(part,Mess[kind][part])
            WritingPaper.append(line)
        WritingPaper.append("{}\n".<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值