Мне нужно создать растровый график, который отображает временные данные. Вот пример имеющихся у меня данных. Для каждого участника у меня есть продолжительность времени (начало и смещение), которое он провел в разных местах (детская кроватка, пол и т. Д. c) в течение 24 часов в сутки. Я хотел бы такой тип растра, который показывает местоположение участников непрерывно, а не в виде галочки. Как мне go написать этот скрипт в ggplot2?
id onset offset location
1 06:00:00.0 06:35:00.0 hichair
1 06:35:00.0 08:00:00.0 carseat
1 08:00:00.0 09:00:00.0 chifurn
1 09:00:00.0 09:45:00.0 cribcradle
1 09:45:00.0 12:00:00.0 gndfl
1 12:00:00.0 12:45:00.0 chifurn
1 12:45:00.0 15:00:00.0 gndfl
1 15:00:00.0 16:00:00.0 chifurn
1 16:00:00.0 17:15:00.0 strowlkr
1 17:15:00.0 18:00:00.0 carseat
1 18:00:00.0 18:30:00.0 hichair
1 18:30:00.0 19:30:00.0 gndfl
1 19:30:00.0 20:00:00.0 adlfurn
1 20:00:00.0 06:00:00.0 cribcradle
2 06:00:00.0 06:30:00.0 cribcradle
2 06:30:00.0 06:45:00.0 adlfurn
2 06:45:00.0 06:55:00.0 adlfurn
2 06:55:00.0 07:45:00.0 gndfl
2 07:45:00.0 07:55:00.0 arms
2 07:55:00.0 08:30:00.0 gndfl
2 08:30:00.0 08:50:00.0 hichair
2 08:50:00.0 09:45:00.0 strowlkr
2 09:45:00.0 10:00:00.0 cribcradle
2 10:00:00.0 11:00:00.0 cribcradle
2 11:00:00.0 11:05:00.0 cribcradle
2 11:05:00.0 11:15:00.0 hichair
2 11:15:00.0 11:35:00.0 infcarry
2 11:35:00.0 12:30:00.0 gndfl
2 12:30:00.0 13:00:00.0 hichair
2 13:00:00.0 13:30:00.0 gndfl
2 13:30:00.0 15:15:00.0 cribcradle
2 15:15:00.0 16:20:00.0 carseat
2 16:20:00.0 18:30:00.0 arms
2 18:30:00.0 18:45:00.0 infcarry
2 18:45:00.0 19:45:00.0 carseat
2 19:45:00.0 20:05:00.0 arms
2 20:05:00.0 06:00:00.0 cribcradle
3 06:00:00.0 07:00:00.0 adlfurn
3 07:00:00.0 07:05:00.0 adlfurn
3 07:05:00.0 07:45:00.0 arms
3 07:45:00.0 08:00:00.0 gndfl
3 08:00:00.0 08:15:00.0 hichair
3 08:15:00.0 08:30:00.0 adlfurn
3 08:30:00.0 08:45:00.0 strowlkr
3 08:45:00.0 09:00:00.0 arms
3 09:00:00.0 11:30:00.0 gndfl
3 11:30:00.0 12:30:00.0 hichair
3 12:30:00.0 15:00:00.0 cribcradle
3 15:00:00.0 15:25:00.0 hichair
3 15:25:00.0 17:00:00.0 gndfl
3 17:00:00.0 17:15:00.0 carseat
3 17:15:00.0 17:30:00.0 hichair
3 17:30:00.0 17:45:00.0 gndfl
3 17:45:00.0 18:05:00.0 carseat
3 18:05:00.0 18:25:00.0 arms
3 18:25:00.0 18:40:00.0 carseat
3 18:40:00.0 19:10:00.0 gndfl
3 19:10:00.0 19:25:00.0 hichair
3 19:25:00.0 19:45:00.0 carseat
3 19:45:00.0 19:50:00.0 arms
3 19:50:00.0 19:55:00.0 adlfurn
3 19:55:00.0 20:05:00.0 arms
3 20:05:00.0 20:10:00.0 adlfurn
3 20:10:00.0 20:15:00.0 arms
3 20:15:00.0 20:20:00.0 adlfurn
3 20:20:00.0 20:25:00.0 arms
3 20:25:00.0 03:30:00.0 cribcradle
3 03:30:00.0 04:00:00.0 arms
3 04:00:00.0 06:00:00.0 adlfurn
Вот пример из опубликованной статьи того, что я хочу (но в моем случае у меня было бы несколько цветов, отображающих разные места)
Вот сценарий, который у меня есть в настоящее время, который обеспечивает разрозненную временную шкалу с использованием начала местоположения. Мне также нужно отсортировать время на рисунке, чтобы отображать данные с 6:00 текущего дня до 6:00 следующего дня. Я бы хотел, чтобы полосы были непрерывными.
Спасибо за вашу помощь !!
ggplot(loc_us) +
geom_raster(aes(x=onset, y=id, fill = location)) +
coord_equal() + theme_classic() +
theme(legend.position="bottom") +
scale_x_discrete(breaks=c("00:00:00.0", "06:00:00.0", "12:00:00.0", "20:00:00.0"))
фотография вывода, которую дает мне мой скрипт