绘制每分钟的师生语言百分比动态曲线分析图(弗兰德斯)

本文主要是介绍绘制每分钟的师生语言百分比动态曲线分析图(弗兰德斯),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文目的

根据一节课的弗兰德斯互动分析观察记录表,以 1 分钟为单位对弗兰德斯记录的参数进行分析计算,绘制出教师语言、学生语言的百分比动态曲线分析图

问题拆解

其实步骤很简单,就是

  1. 从excel文件中读数据
  2. 算每分钟教师语言和学生语言相对应的比率
  3. 根据两个比率,在同一个图片中画两条折线图

具体代码如下

# -*- coding: utf-8 -*-
"""
以 1 分钟为单位对弗兰德斯记录的参数进行分析计算,
绘制出教师语言、学生语言的百分比动态曲线分析图
"""
import openpyxl   
import numpy as np
import matplotlib
from matplotlib import pyplot as plt
###设置中文显示
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False#######第一步,读取xlsx文件中的标注数据
wb=openpyxl.load_workbook("xxx.xlsx")
ws=wb.active
lamda=ws['B2:U41']
a=np.zeros((40,20))
for i in range(40):for j in range(20):a[i][j]=lamda[i][j].value#######第二步,计算每个1分钟的师生语言比率
te_li=list()
st_li=list()for i in range(40):t=s=c=0for j in range(20):if a[i][j]<=7:t+=1elif 7<a[i][j]<=10:s+=1c=20st_li.append(s/c)te_li.append(t/c)#######第三步,画图
x=[i+1 for i in range(40)]
y=[0.5 for i in range(40)]
plt.figure()
plt.plot(x,st_li,'*:r',label='学生语言比率')
plt.plot(x,te_li,'*:b',label='教师语言比率')
plt.plot(x,y,'k')
plt.xlabel('课程时间')
plt.ylabel('师生语言占比')
plt.title('曲线分析')
plt.ylim([0,1])
plt.legend()
plt.show()

结果显示

(其他颜色等设定,自己百度哈) 

这篇关于绘制每分钟的师生语言百分比动态曲线分析图(弗兰德斯)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819152

相关文章

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis