i new r, know if possible create chart figure below?
i create custom chart displaying duration of activities completed various people @ given time.
i'd propose format data, each activity has start , end time.
load libraries. dplyr
used manipulating dataset, , not strictly needed.
library(ggplot2) library(dplyr)
first read data set
activities <- read.csv2( text= "person; activity; activity start; activity end a; activity 1; 10:30; 11:30 a; activity 2; 12:00; 13:00 a; activity 3; 14:00; 16:00 b; activity 1; 10:30; 11:30 b; activity 2; 11:30; 13:00 b; activity 3; 14:00; 14:30" ) %>% mutate( activity.start = as.posixct(activity.start, format="%h:%m"), activity.end = as.posixct(activity.end, format="%h:%m"), person = as.factor(person) )
so have correct classes columns , can plot with
ggplot(activities) + geom_rect( aes( xmin=activity.start, xmax=activity.end, fill=activity, ymin=as.numeric(person)-.5, ymax=as.numeric(person)+.5) ) + scale_y_continuous(labels=levels(activities$person), breaks=1:2) + geom_text( aes(x=(activity.start + (activity.end - activity.start)/2), y=as.numeric(person), label=activity) ) + xlab(null) + ylab("person")
which results in