I have data where I have measurements of same subjects on 4 different stages. My goal is to make one graph on which there is both a boxplot, as well as the point of each subject with a line connecting each subject between each stage. The end result would be to combine both the graph below in one single final graph
library(ggplot2)
df_original = data.frame(study_id = c("id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9", "id10"),
val_stage1 = runif(10, 5.0, 6.0),
val_stage2 = runif(10, 5.0, 6.5),
val_stage3 = runif(10, 4.7, 5.8),
val_stage4 = runif(10, 5.5, 7.0))
df_original
df_plot1 = data.frame(group = "stage1", value = df_original[, "val_stage1"], ID = df_original$study_id)
df_plot2 = data.frame(group = "stage2", value = df_original[, "val_stage2"], ID = df_original$study_id)
df_plot3 = data.frame(group = "stage3", value = df_original[, "val_stage3"], ID = df_original$study_id)
df_plot4 = data.frame(group = "stage4", value = df_original[, "val_stage4"], ID = df_original$study_id)
plot_data = rbind(df_plot1,
df_plot2,
df_plot3,
df_plot4)
ggplot(plot_data, aes(x=group,
y=value,
fill=group
)
) +
geom_boxplot(outlier.shape = NA) +
geom_point()
library(lattice)
# source https://publicifsv.sund.ku.dk/~jufo/courses/rm2017/plotRrepeated.pdf
xyplot(value ~ group, group = ID, data = plot_data, type = "b")