library(ggplot2) library(tidyr) library(lubridate) # time conversion library(signal) library(tcltk) # ggplot format legend_theme <- theme(plot.title = element_text(size=20, hjust = 0.5, face="bold"), axis.title.x = element_text(size=14, face="bold"), axis.title.y = element_text(size=14, face="bold"), legend.title=element_text(size=14), legend.text=element_text(size=12)) data <- read.csv("soccer.csv", header=FALSE) colnames(data) <- c("timestamp","tag_id","x_pos","y_pos","heading","direction","energy","speed","total_distance") data <- data %>% separate(timestamp, into = c("date", "time"), sep=" ") data$time <- as.numeric(hms(data$time)) data$time <- data$time-data$time[1] player2 <- subset(data, tag_id == 2, select = c("time", "x_pos", "y_pos", "speed", "total_distance")) player2$dist2 <- c(0, cumsum(sqrt(diff(player2$x_pos)*diff(player2$x_pos)+diff(player2$y_pos)*diff(player2$y_pos)))) player2$cspeed2 <- c(0, diff(player2$dist2)/diff(player2$time)) player2$speed2 <- player2$speed # ----------- LabSession 03 Excercise 2 ----------- b <- numeric(1000) + 1/1000 player2$speedFiltered <- as.numeric(filter(b, 1, player2$speed2)) player2$cspeedFiltered <- as.numeric(filter(b, 1, player2$cspeed2)) speeddata <- player2 %>% gather(stype, sspeed, c("speedFiltered", "cspeedFiltered", "speed2", "cspeed2")) x11() # windows() gg <- ggplot() gg <- gg + geom_line(data = speeddata, aes(x=time, y=sspeed, color=factor(stype, levels = c("speed2", "cspeed2", "cspeedFiltered", "speedFiltered")), linetype=stype, size=stype)) gg <- gg + labs(title = "Speed", x = "Time (min)", y = "Speed (m/s)") gg <- gg + scale_color_manual("Speed", labels = c("speedFiltered" = "Speed filtered", "cspeedFiltered" = "Computed Speed filtered", "speed2"="Speed", "cspeed2"="Computed Speed"), values = c("speedFiltered" = "red", "cspeedFiltered" = "blue", "speed2"="yellow", "cspeed2"="gray")) gg <- gg + scale_linetype_manual(guide=FALSE, values = c("dashed", "solid", "solid", "dashed")) gg <- gg + scale_size_manual(guide=FALSE, values = c(1, 3, 1, 1)) gg <- gg + legend_theme gg <- gg + scale_y_continuous(limits = c(0, 5)) print(gg) capture <- tk_messageBox(message = "Close?", detail = "")