一、项目分析
- 折线图:用于显示不同科目之间的数据变化趋势,例如添加一个动画函数,每一帧画出(体育、计算机、立法法、和平均分)折线段,实时图上的文本更新为当前的平均分。
- 点图:对应图表中的数据,横坐标为前30名同学的排名,纵坐标为前30名同学的总分,添加一个动画函数,每一帧出现一个点图,点的大小表示同学的总成绩大小,越靠近原点坐标,说明排名越靠前。
- 柱状图:对应图表中的数据,动画效果为,每次出现五个条形图,对应不同的颜色,每一帧向后读取一个数据,图上显示为条线图向前移动一个位置。
- 环状图:用于表示整体中及格人数与不及格人数的相对比例,例如圆环图动图。
- 图表:用于表示年级排名前30的学生,分别表示姓名、总分、排名。
二、项目实施思路
数据导入:从Excel文件中读取数据,包括体育、计算机、立法法成绩,总分和平均分。对数据进行切片和格式化处理,例如保留一位小数。
背景和布局设置:插入背景图片,并设置坐标轴和图例为不显示。调整子图布局以确保图片填充满整个figure。
绘制图表:创建散点图、折线图、饼图、圆环图和条形图等多种图表。在图表中使用丰富的颜色、标记和文本,增强视觉效果。设置图表的标题、标签和图例,提高可读性。
动画效果:为散点图、折线图和条形图添加动态效果。动画效果包括数据点的动态生成、折线的动态绘制和条形图的动态更新。
交互性设计:虽然代码中没有直接的交互性功能,但通过动态更新图表,实现了数据的交互式展示。
样式和颜色编码:使用了中文字符集和自定义字体,以支持中文显示。使用了不同的颜色编码,以区分不同的数据集和图表类型。
项目整合:将不同的图表绘制和数据预处理操作分成了多个函数。注释提供了对代码功能的简要说明,有助于理解代码的逻辑。
三、项目实施技术路线
安装依赖库:确保Python环境中已安装matplotlib、openpyxl、numpy等必要的库,用于数据处理和可视化。
配置显示:通过调整matplotlib的配置,比如设置中文字体,支持中文显示,以及定义颜色方案,为后续绘图做准备。
数据读取:使用openpyxl读取Excel文件中的数据,具体到“2012级法律”工作表。
数据整理:提取特定列的数据,如体育、计算机、立法法等科目的成绩,总分、平均分,以及学生姓名和排名。
数据清洗:对数据进行基本的格式化处理,如对成绩进行四舍五入处理,便于后续绘图。
散点图:展示总体数据统计(人数、总分、平均分)的动态散点图,每个点代表一项统计指标。
折线图:动态展示体育、计算机、立法法成绩以及平均分随时间(或学生编号)变化的趋势。
表格:静态展示排名前30名的学生姓名、总分和排名。
圆环图:动态显示体育及格率与不及格率,采用创意设计展示。
动态点图与条形图:分别展示学生成绩分布和特定学生的成绩条形图。
动态更新:利用FuncAnimation实现多个图表元素的动态变化,增强了可视化效果的吸引力和信息传递能力。
色彩与标记:精心挑选的颜色编码和标记样式,使得不同数据类别易于区分,同时保持图表的美观。
透明背景与去除边框:设置图表区域背景透明,并移除不必要的边框,使视觉焦点集中在数据上。
自定义文本与注释:在图表中添加标题、注释和说明文字,提高图表的自解释性。
四、结果分析
图4-1 数据可视化仪表盘的设计与制作开始