Есть ли решение для использования общей цветовой легенды для двух отдельных тепловых карт, которые объединяются с ggarrange ()? - PullRequest
0 голосов
/ 24 января 2019

У меня есть несколько наборов данных с различными диапазонами данных, которые мне нужно использовать для создания тепловых карт в 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

...