visualization - Drawing a custom chart in R - Displaying a time log of activites -


i new r, know if possible create chart figure below?

enter image description here

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

example plot