Я не могу исправить цвета моих тепловых карт в соответствии с их значениями. Одинаковые значения должны иметь одинаковые цвета. Цель состоит в том, чтобы все значения были ниже определенного порога (0,05) в (постоянном) сером цвете. Для значений, превышающих этот порог, цвета должны постепенно меняться с «firebrick1» на «firebrick4».
Например, «Plant 5» / «202004» = 70,6 - красный, если я использую переменную utilization2
и серый, если я использую переменную utilization
. Как я могу это исправить?
library(tidyverse)
library(rlang)
MONTHS <- str_c("2020", sprintf("%02d", 1:12))
PLANTS <- str_c("Plant ", 1:5)
crossing(month = MONTHS, plant = PLANTS) %>%
mutate(utilization = runif(nrow(.), 70, 100)) %>%
mutate(utilization2 = if_else(plant == "Plant 2", utilization * 0.67, utilization)) -> d
draw_plot <- function(fill) {
fill <- ensym(fill)
d %>%
ggplot(mapping = aes(x = month, y = plant, fill = !!fill)) +
geom_tile(aes(width = 0.85, height = 0.85)) +
geom_text(aes(label = round(!!fill, 1)), color = "white") +
scale_x_discrete(expand=c(0,0)) +
scale_y_discrete(expand=c(0,0)) +
scale_fill_gradientn(colours = c("darkgray", "firebrick1", "firebrick4"),
values = c(0, 0.05, 1)) +
labs(x = "Month", y = "Production plant", title = str_c("fill = ", fill), color = "Utilization") +
theme_light() +
theme(legend.position = "none")
}
draw_plot(utilization)
draw_plot(utilization2)