I've added a few lines to your example data
library(ggplot2)
library(reshape2)
df <- read.table(text =
"day1 day2 day3 day4
ID1 1 3 4 1
ID2 2 4 1 3
ID3 1 1 3 4", header = TRUE)
df %>%
as.matrix %>%
reshape2::melt(value.name = "count") -> new_df
Var1 Var2 count
1 ID1 day1 1
2 ID2 day1 2
3 ID3 day1 1
4 ID1 day2 3
5 ID2 day2 4
6 ID3 day2 1
7 ID1 day3 4
8 ID2 day3 1
9 ID3 day3 3
10 ID1 day4 1
11 ID2 day4 3
12 ID3 day4 4
Now you can use it for a plot, grouped by ID
.
ggplot(data = new_df) +
geom_jitter(aes(x = Var2, y = count, color = Var1), width = 0.2, height = 0.2) +
xlab("day")
