MWE:
library(metR)
heat_palette = c("darkred", "red", "yellow", "#00A600", "darkgreen")
heatmap_of_percentage <- function(percent) {
# display <- sprintf("%2f%%", {{percent}})
# ^^ If I uncomment this, I get a bug
c(
geom_raster(aes(fill = {{percent}})),
geom_contour(aes(z = {{percent}}), color = "black"),
geom_text_contour(aes(z = {{percent}}), color = "black", stroke = 0.2),
scale_fill_gradientn(limits = c(0, 100), colours = heat_palette)
)
}
df <- expand.grid(x = 1:100, y = 1:100)
df$Z <- df$x * df$y / 100
ggplot(df, aes(x = x, y = y)) +
heatmap_of_percentage(percent = Z)
produz
Gostaria de modificar isso para que os contornos sejam rotulados como 10%, 30%, etc. Como posso fazer isso, apenas modificando heatmap_of_percentage
(ou seja, não adicionando uma coluna extra no código de chamada)?
Você pode usar
after_stat()
para formatar os rótulos que correspondem ao valorlevel
que é calculadogeom_text_contour
internamente: