У меня есть несколько наборов данных с различными диапазонами данных, которые мне нужно использовать для создания тепловых карт в ggplot2. Я хотел бы объединить все тепловые карты в одну фигуру с помощью ggarrange (). Я хотел бы, чтобы все тепловые карты использовали одинаковую шкалу заполнения, которая представляет весь диапазон данных из обоих наборов.
Я знаю, что ggarrange () имеет аргумент common.legend = TRUE
, однако это просто извлечет легенду из первой тепловой карты независимо от того, описывает ли она данные во второй тепловой карте. Я пытался использовать одну и ту же цветовую шкалу для каждой тепловой карты, которая создается с чем-то вроде scale_fill_gradientn(df, colors = c(...), values = df$value, space = "Lab")
, но это также не совсем правильно масштабировалось.
require(ggplot2)
require(ggpubr)
high <- ggplot(subset(mtcars, hp > 100), aes(x = carb, y = gear, fill = hp)) + geom_tile(color = "white")
high
low <- ggplot(subset(mtcars, hp < 100), aes(x = carb, y = gear, fill = hp)) + geom_tile(color = "white")
low
both <- ggarrange(high, low)
both