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")
