I'd like to turn my data into a calendar where different measurements are represented for each day. Days should be coloured based on the case number, and if more than one measurement was taken during the day, separate colours should be used. For instance, if cases 1 and 3 reported measurements on the same day, the date should be coloured blue. If case 1, case 3, and case 4 all reported measurements on the same day, the date should be highlighted in orange. And so forth.
My starting point was this article, but I'm still having trouble creating the diary months and marking the days when measurements were taken.
Any assistance is greatly appreciated.
Sample data:
structure(list(Date = c("10/12/2014", "11/12/2014", "12/12/2014",
"13/12/2014", "14/12/2014", "15/12/2014", "16/12/2014", "17/12/2014",
"18/12/2014", "19/12/2014", "20/12/2014", "21/12/2014", "22/12/2014",
"23/12/2014", "24/12/2014", "25/12/2014", "26/12/2014", "27/12/2014",
"28/12/2014", "29/12/2014", "30/12/2014", "31/12/2014", "01/01/2015",
"02/01/2015", "03/01/2015", "04/01/2015", "05/01/2015", "06/01/2015",
"07/01/2015", "08/01/2015", "09/01/2015", "10/01/2015", "11/01/2015",
"12/01/2015", "13/01/2015", "14/01/2015", "15/01/2015", "16/01/2015",
"17/01/2015", "18/01/2015", "19/01/2015", "20/01/2015", "21/01/2015",
"22/01/2015", "23/01/2015", "24/01/2015", "25/01/2015", "26/01/2015",
"27/01/2015", "28/01/2015", "29/01/2015", "30/01/2015", "31/01/2015",
"01/02/2015", "02/02/2015", "03/02/2015", "04/02/2015", "05/02/2015",
"06/02/2015", "07/02/2015", "08/02/2015", "09/02/2015", "10/02/2015",
"11/02/2015", "12/02/2015", "13/02/2015", "14/02/2015", "15/02/2015",
"16/02/2015", "17/02/2015", "18/02/2015", "19/02/2015", "20/02/2015",
"21/02/2015", "22/02/2015", "23/02/2015", "24/02/2015", "25/02/2015",
"26/02/2015", "27/02/2015", "28/02/2015", "01/03/2015", "02/03/2015",
"03/03/2015", "04/03/2015", "05/03/2015", "06/03/2015", "07/03/2015",
"08/03/2015", "09/03/2015", "10/03/2015", "11/03/2015", "12/03/2015",
"13/03/2015", "14/03/2015", "15/03/2015", "16/03/2015", "17/03/2015",
"18/03/2015", "19/03/2015", "20/03/2015", "21/03/2015", "22/03/2015",
"23/03/2015", "24/03/2015", "25/03/2015", "26/03/2015", "27/03/2015",
"28/03/2015", "29/03/2015", "30/03/2015", "31/03/2015", "01/04/2015",
"02/04/2015", "03/04/2015", "04/04/2015", "05/04/2015", "06/04/2015",
"07/04/2015", "08/04/2015", "09/04/2015", "10/04/2015", "11/04/2015",
"12/04/2015", "13/04/2015", "14/04/2015", "15/04/2015", "16/04/2015",
"17/04/2015", "18/04/2015", "19/04/2015", "20/04/2015", "21/04/2015",
"22/04/2015", "23/04/2015", "24/04/2015", "25/04/2015", "26/04/2015",
"27/04/2015", "28/04/2015", "29/04/2015", "30/04/2015", "01/05/2015",
"02/05/2015", "03/05/2015", "04/05/2015", "05/05/2015", "06/05/2015",
"07/05/2015", "08/05/2015", "09/05/2015", "10/05/2015", "11/05/2015",
"12/05/2015", "13/05/2015", "14/05/2015", "15/05/2015", "16/05/2015",
"17/05/2015", "18/05/2015", "19/05/2015", "20/05/2015", "21/05/2015",
"22/05/2015", "23/05/2015", "24/05/2015", "25/05/2015", "26/05/2015",
"27/05/2015", "28/05/2015", "29/05/2015", "30/05/2015", "31/05/2015",
"01/06/2015", "02/06/2015", "03/06/2015", "04/06/2015", "05/06/2015",
"06/06/2015", "07/06/2015", "08/06/2015", "09/06/2015", "10/06/2015",
"11/06/2015", "12/06/2015", "13/06/2015", "14/06/2015", "15/06/2015",
"16/06/2015", "17/06/2015", "18/06/2015"), `Case 1` = c(NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, "Case 1", "Case 1", "Case 1",
"Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1",
"Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1",
"Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1",
"Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1",
"Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1",
"Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1",
"Case 1", "Case 1", "Case 1", "Case 1", "Case 1", "Case 1", NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, "Case 1", "Case 1", "Case 1", "Case 1",
"Case 1", "Case 1", "Case 1", "Case 1", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), `Case 2` = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Case 2",
"Case 2", "Case 2", "Case 2", "Case 2", "Case 2", "Case 2", "Case 2",
"Case 2", "Case 2", "Case 2", "Case 2", "Case 2", "Case 2", "Case 2",
"Case 2", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA), `Case 3` = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3",
"Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3",
"Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3",
"Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3",
"Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3",
"Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3",
"Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3",
"Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3", "Case 3",
"Case 3", "Case 3", "Case 3", "Case 3", "Case 3", NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), `Case 4` = c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4",
"Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4",
"Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4",
"Case 4", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Case 4",
"Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4",
"Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4",
"Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4",
"Case 4", "Case 4", "Case 4", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, "Case 4", "Case 4", "Case 4", "Case 4", "Case 4",
"Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4", "Case 4",
"Case 4", "Case 4", "Case 4"), `Case 5` = c("Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5", "Case 5",
"Case 5", "Case 5", "Case 5", "Case 5", "Case 5", NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), `Case 6` = c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, "Case 6", "Case 6", "Case 6", "Case 6", "Case 6", "Case 6",
"Case 6", "Case 6", "Case 6", "Case 6", "Case 6", "Case 6", "Case 6",
"Case 6", "Case 6", "Case 6", "Case 6", "Case 6", "Case 6", "Case 6",
"Case 6", "Case 6", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Case 6",
"Case 6", "Case 6", "Case 6", "Case 6", "Case 6", "Case 6", "Case 6",
"Case 6", "Case 6", "Case 6", "Case 6", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), `Case 7` = c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, "Case 7", "Case 7", "Case 7", "Case 7", "Case 7", "Case 7",
"Case 7", "Case 7", "Case 7", "Case 7", "Case 7", "Case 7", "Case 7",
"Case 7", "Case 7", "Case 7", "Case 7", "Case 7", "Case 7", "Case 7",
"Case 7", "Case 7", "Case 7", "Case 7", "Case 7", "Case 7", "Case 7",
"Case 7", "Case 7", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), class = c("spec_tbl_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -191L), spec = structure(list(
cols = list(Date = structure(list(), class = c("collector_character",
"collector")), `Case 1` = structure(list(), class = c("collector_character",
"collector")), `Case 2` = structure(list(), class = c("collector_character",
"collector")), `Case 3` = structure(list(), class = c("collector_character",
"collector")), `Case 4` = structure(list(), class = c("collector_character",
"collector")), `Case 5` = structure(list(), class = c("collector_character",
"collector")), `Case 6` = structure(list(), class = c("collector_character",
"collector")), `Case 7` = structure(list(), class = c("collector_character",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1L), class = "col_spec"))