Вот пример использования данных mtcars
(масштабированных для получения сопоставимых значений, поэтому числа не имеют большого значения).
Ключевыми моментами являются использование gather
для очистки данных, geom_tile
, заполненного по значению, и geom_text
для этикеток. Все остальное - просто манипуляции с этим конкретным фреймом данных.
Вы также можете просто использовать одну из геометрий scale_fill_gradient
.
library(tidyverse)
library(viridis)
mtcars %>%
scale() %>%
as.data.frame() %>%
rownames_to_column(var = "make") %>%
gather(var, val, -make) %>%
ggplot(aes(var, make)) +
geom_tile(aes(fill = val)) +
geom_text(aes(label = round(val, 2)),
size = 3) +
coord_fixed() +
scale_fill_viridis() +
guides(fill = FALSE)
Или используя:
+ scale_fill_gradient2(midpoint = 1.5)
Спасибо, nielfws! Это именно то, что я искал.
Вы могли бы сделать что-то подобное: sthda.com/english/wiki/…