У меня есть набор данных, который содержит три столбца: Date
без отметки времени, TimeTS
дня, преобразованного в число часов с полуночи для определенного события c, связанного с Date
. Третий столбец - это Phase
, который либо либо morning
, afternoon
, evening
, либо night
. Фаза является производной от TimeTS
.
Ниже приведен пример
Date TimeTS Phase
2020-01-29 2.75 Night
2020-01-29 4.83 Morning
2020-01-29 7 Morning
2020-01-30 10.6 Afternoon
Мне нужно использовать интерактивную диаграмму, например plotly
, чтобы показать следующее:
- Точечная диаграмма с
Date
на оси x и Time
на y
с каждым моментом времени, отмеченным на каждой дате - Полупрозрачные полосы
Phase
, бегущие горизонтально на диаграмме, для легкой интерпретации временных полос и распределение маркеров по Phase
Приведенный ниже код приближает меня к желаемому результату, но не совсем.
p <- ggplot(clean.data, aes(x=Date,y=TimeTS)) +
geom_rect(data=clean.data, mapping = aes(
xmin=min(Date),
xmax=max(Date),
ymin=0,
ymax=24,
fill=Phase), alpha=0.1) +
# scale_fill_manual(values=c("Morning" = "red", "Afternoon" = "blue", "Evening" = "green", "Night" = "black")) +
geom_point()
p <- ggplotly(p)
p
Это дает мне только одну из Phase
полос на графике, а не другие. Плюс я думаю, что он работает вертикально, а не горизонтально.
Любые идеи приветствуются.