为什么我不能只获取数据 R 中日期的热图?

Why I cannot get heatmap only for the dates in my data, R?

我正在尝试创建日历热图,但绘制了 2021 年的所有日期。但是,我只想绘制数据集中的日期。从 2020 年全年到 2021 年 2 月。这是在 R 中完成的。

这是我的假数据:

我正在使用来自 github 的 calendarHeat:

source("https://raw.githubusercontent.com/iascchen/VisHealth/master/R/calendarHeat.R")

实际代码是这样的:

r2g <- c("#D61818", "#FFAE63", "#FFFFBD", "#B5E384")

calendarHeat(occ_abv_18$date, occ_abv_18$oc_18, ncolors = 99, color = "r2g", varname="Occupancy over 18")

我不明白为什么我没有得到热图?有没有办法解决这个问题或欢迎任何其他解决方案?感谢您的帮助。

列名称是 'Date' 而不是 date(基于 OP 的代码)

calendarHeat(dates = occ_abv_18$Date, values = occ_abv_18$oc_18, 
      ncolors = 99, color = "r2g", varname="Occupancy over 18")

-输出


关于日期范围的 OP'c 注释,它是 calendarHeat 函数中的行

...
min.date <- as.Date(paste(format(min(dates), "%Y"),
                    "-1-1",sep = ""))
max.date <- as.Date(paste(format(max(dates), "%Y"),
                     "-12-31", sep = ""))
...

floor/ceiling min/max

的年份

因此,如果我们通过将这些行更改为

来更改函数
body(calendarHeat)[[7]] <- quote(min.date <- min(dates))
body(calendarHeat)[[8]] <- quote(max.date <- max(dates))

它会起作用

calendarHeat(dates = occ_abv_18$Date, values = occ_abv_18$oc_18, 
      ncolors = 99, color = "r2g", varname="Occupancy over 18")

-输出


如果我们需要更改 'r2g' 中的颜色顺序,则更改 body 元素 22

body(calendarHeat)[[22]] <- quote(r2g <- rev(c("#D61818", "#FFAE63", "#FFFFBD", "#B5E384")))

应用函数

calendarHeat(dates = occ_abv_18$Date, values = occ_abv_18$oc_18, 
      ncolors = 99, color = "r2g", varname="Occupancy over 18")

-输出