将数据以可视化、互动性的方式呈现出来。
找异类 - 汉字和英文字母的视觉相似度评价
https://github.com/lynb233/Interactive-TermProject.git
确保安装了anaconda,然后在项目文件根目录下,使用以下命令:
conda env create -f environment.yml切换到新创建的虚拟环境中
conda activate IAct安装pip依赖
pip install -r requirements.txt运行
python gui.py- 关卡表现与玩家反应:使用柱状图或折线图,展示每个关卡的平均完成时间、平均正确率,并分析玩家识别“异类”的反应时间和正确率。
- 异类识别难度与任务分析:考虑异类比例、扰动模式(无扭曲、缩放、旋转、复合),分析玩家在各种条件下的正确率和反应时间的变化。
- 玩家选择与行为模式:创建交互式图表,分析玩家在特定关卡和条件下的选择,包括扰动模式和异类比例的影响。
- 时间序列与学习效应:通过时间序列图展示玩家的选择和行为模式的变化,观察他们的学习效应,例如正确率的提高和反应时间的缩短。
- 字符错误选择位置热力图:利用热力图,展示在不同扰动模式下选择错误字符的位置,分析误选情况。
- 多选错误与未选择错误:分析玩家在选择常类时的错误情况,以及未能识别异类的情况。
- 时间动态分析:分析玩家在每一局游戏中的表现随时间的变化,例如随着时间推移玩家的速度和准确率是否有所改进。
- 整体表现仪表板:创建一个包含关键性能指标的仪表板,如总平均正确率、平均完成时间、最常见的错误类型等。
- 玩家比较与统计测试:比较不同玩家在同一关卡的表现,使用统计测试来分析数据差异。
- 前端框架: Tkinter包
- 数据处理: Python的Pandas, NumPy等包,用于数据清洗和预处理。
见克隆后文件夹内文件:说明.docx
在CSV中,每一行表示某一局下的一个格子内的符号。每一列的意义如下:
- trial (关卡计数):第几局
- AlienRatio (异类比例):本局中“异类”的占比
- Dimension:本游戏模式下无意义
- distortMode (扰动模式):即每个符号被扭曲的方式,包括:
None: 无扭曲Scale: 缩放Rotate: 随机倾斜Composite: 复合
- i, j: 符号的位置
- charID: 对应的汉字符号或英文符号的id(这里有个ID对应表,但表很长故没有提供)
- scale (缩放尺度):字符显示时的缩放比例
- rotate (倾斜角):倾斜角度,单位为弧度
- alien (异类标记):1-异类;0-常类
- alien之后的0,1,2,…等列:表达被点选的时刻,每次点选都会记录下时刻。该数据意义见下:
- 如果0,2列有数据(通常为毫秒数),则代表玩家点选了该字符。如果0列没有数据,代表玩家没有选择。如果1,3有数据,代表玩家选择后又取消了选择(可以视为玩家没有选择)
它所记录的“时刻”的意义是:每局开始后后台启动一个秒表。每选择一个字符,就记录当点击(选择)的时候,秒表所记录(或者说“显示”)的时间。
数据未清理时的格式如下:
玩家是否正确选择,需要手动判断。判断方法如下:
- 当该字符异类标记为1的时候,如果数据表明玩家点选了该字符,则代表玩家选择正确。如果没有点选,则代表选择错误(未选择)
- 反之,如果字符异类标记为0的时候,玩家也点选了该字符,则代表玩家点选失败(多选)
注意,原始数据中,部分行的数据为undefined,需要进行相应处理。
数据清理后的格式如下:
最后一列新增加了以下内容:
- correct_choice:表示玩家的选择是否正确。数据为字符串True或者False