Heat map with numbers in ggvis
ggvis, r
Solution
One workaround is to use `xcenter` and `ycenter` scales:
hec <- as.data.frame(xtabs(Freq ~ Hair + Eye, HairEyeColor))
hec%>%
ggvis(~Hair, ~Eye, fill=~Freq) %>%
layer_rects(width = band(), height = band()) %>%
layer_text(
x = prop("x", ~Hair, scale = "xcenter"),
y = prop("y", ~Eye, scale = "ycenter"),
text:=~Freq, fontSize := 20, fill:="white", baseline:="middle", align:="center") %>%
scale_nominal("x", padding = 0, points = FALSE) %>%
scale_nominal("y", padding = 0, points = FALSE) %>%
scale_nominal("x", name = "xcenter", padding = 1, points = TRUE) %>%
scale_nominal("y", name = "ycenter", padding = 1, points = TRUE)
Problem
I'm trying to replicate the heat map with numbers from ggplot2 in ggvis. ggplot2 version is ``` library(ggplot2) hec <- as.data.frame(xtabs(Freq ~ Hair + Eye, HairEyeColor)) ggplot(hec, aes(Hair, Eye)) + geom_tile(aes(fill = Freq)) + geom_text(aes(label = Freq),colour="white") ``` and it looks like that My version in ggvis is ``` hec%>% ggvis(~Hair, ~Eye, fill=~Freq)%>% layer_rects(width = band(), height = band()) %>% layer_text(text:=~Freq,fontSize := 20, fill:="white",baseline:="top",align:="center") %>% scale_nominal("x", padding = 0, points = FALSE) %>% scale_nominal("y", padding = 0, points = FALSE) ``` and the result is not perfect I've tried to fix numbers align by manually adding margins, but this case is not resizeable. Any ideas?