I have a dataframe
with data for each hour of the day. Each hour of the day was categorized in a specific phase of the day.
- 0-5 is Phase 1.
- 6-11 is Phase 2.
- 12-17 is Phase 3.
- 18-23 is Phase 4.
I need to add the x-axis
labels for the phase to the hour labelling
This is what I have:
This is what I would like to have:
The dataframe
is quite big, so the categories "hour"
and "category"
phase repeat very often in the dataframe
.
Please, find below the R
code for the plot I have:
ggplot(data = allactivities[allactivities$wave == 1,], aes(x = ap_hour_factor,y = ap_dauer_min, group=interaction(sex,ap_hour_factor), fill = factor(sex))) +
stat_summary(fun.y=mean, geom= "line", size=1, aes(group = sex, colour = factor(sex)), linetype = "solid") +
stat_summary(fun.y=mean, geom="point", size=2, colour = "black", aes(group = sex), show.legend = FALSE) +
scale_y_continuous(breaks = seq(0,60,4)) +
coord_cartesian(ylim = c(0,60)) +
facet_grid(ap_actCode~., labeller = as_labeller(c("0" = "Sitzen und Liegen", "1" = "Stehen", "2" = "Laufen"))) +
xlab(label = "Uhrzeit") +
ylab(label = "Dauer in Minuten") +
ggtitle("Alle Aktivitäten pro Stunde in der Welle 1
nach Geschlecht und Aktivität") +
scale_color_manual(name = "Geschlecht",
values = c("indianred3","orange1", "olivedrab"),
labels = c("Männer", "Frauen")) +
theme(axis.title.x = element_text(size = 16, family = "sans"),
axis.title.y = element_text(size = 16, family = "sans"),
axis.text.x = element_text(size = 13, family = "sans"),
axis.text.y = element_text(size = 13, family = "sans"),
legend.title = element_text(hjust = 0.5, size = 15, family = "sans"),
legend.text = element_text(size = 12, family = "sans"),
legend.background = element_rect(fill = "gray97", colour = "grey"),
strip.background = element_rect(fill = "gray95"),
strip.text.y = element_text(size = 12, family = "sans"),
plot.title = element_text(hjust = 0.5, size = 19, vjust = 1.5,family = "sans"),
panel.background = element_rect(fill = "white", linetype = "solid"),
panel.grid.major = element_line(colour = "gray90", linetype = "solid"),
panel.grid.minor = element_line(colour = "gray90", linetype = "blank"),
panel.border = element_rect(colour = "gray60", fill = NA, size = 1))