Skip to content

lynb233/interactive-TermProject

Repository files navigation

互动媒体技术大作业 - 数据可视化

将数据以可视化、互动性的方式呈现出来。

选择内容

找异类 - 汉字和英文字母的视觉相似度评价

项目开源地址

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

数据分析与游戏性能评估框架

1. 玩家表现与游戏难度的统计分析

  • 关卡表现与玩家反应:使用柱状图或折线图,展示每个关卡的平均完成时间、平均正确率,并分析玩家识别“异类”的反应时间和正确率。
  • 异类识别难度与任务分析:考虑异类比例、扰动模式(无扭曲、缩放、旋转、复合),分析玩家在各种条件下的正确率和反应时间的变化。

2. 互动性数据探索与玩家行为分析

  • 玩家选择与行为模式:创建交互式图表,分析玩家在特定关卡和条件下的选择,包括扰动模式和异类比例的影响。
  • 时间序列与学习效应:通过时间序列图展示玩家的选择和行为模式的变化,观察他们的学习效应,例如正确率的提高和反应时间的缩短。

3. 热力图、位置分析与错误模式分析

  • 字符错误选择位置热力图:利用热力图,展示在不同扰动模式下选择错误字符的位置,分析误选情况。
  • 多选错误与未选择错误:分析玩家在选择常类时的错误情况,以及未能识别异类的情况。

4. 时间动态分析

  • 时间动态分析:分析玩家在每一局游戏中的表现随时间的变化,例如随着时间推移玩家的速度和准确率是否有所改进。

5. 游戏性能仪表板与统计分析

  • 整体表现仪表板:创建一个包含关键性能指标的仪表板,如总平均正确率、平均完成时间、最常见的错误类型等。
  • 玩家比较与统计测试:比较不同玩家在同一关卡的表现,使用统计测试来分析数据差异。

实现工具

  • 前端框架: 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages