R/ggplot: повторно использовать цветовой ключ для нескольких тепловых карт

Я создаю несколько тепловых карт, которые будут нанесены в виде анимации. Я хочу повторно использовать цветовые клавиши для разных тепловых карт, чтобы показать изменение во времени. В настоящее время ключ сбрасывается для каждой тепловой карты.

Heatmap1: ( http://i.imgur.com/iPIDY82.png) Heatmap2: ( http://i.imgur.com/GvNfQal.png)

Я бы хотел, чтобы "общий диапазон" был одинаковым в обеих тепловых картах. Таким образом, Heatmap1 выше должен иметь чистый "светлый" цвет.

Код, который я имею в настоящее время, выглядит следующим образом:

mat  <- matrix(unlist(row), ncol=4, byrow=TRUE)
matm <- melt (mat)
p    <- ggplot (data=matm) +
        geom_tile (aes(x=X1, y=X2, fill=value), color="white")  +
        scale_fill_gradient (low="steelblue1", high="steelblue4")

row имеет данные для каждой из 16 ячеек. Я конвертирую его в матрицу, а затем строю то же самое. Но разные строки имеют разные диапазоны, и диапазон сбрасывается каждый раз.

Я пробовал следующие модификации:

[1] Добавить перерывы в scale_fill

scale_fill_gradient (low="steelblue1", high="steelblue4",breaks=seq(3,6.4,by=0.05))

[2] Разрежьте данные на факторы и добавьте разрывы в scale_fill

row_cut <- cut (as.numeric(row), breaks=seq(3,6.4,by=0.05), right=FALSE)
mat     <- matrix(unlist(row_cut), ncol=4, byrow=TRUE)
matm    <- melt (mat)
p       <- ggplot (data=matm) +
           geom_tile (aes(x=X1, y=X2, fill=value), color="white")  +
           scale_fill_brewer(palette = "Blues","intensity", breaks=seq(3,6.4,by=0.05))

Но ни одна из модификаций не помогает.

(В сторону: когда я добавляю breaks в scale_fill легенда отсутствует на сюжетах)

1 ответ

Решение

Использовать limits параметр:

scale_fill_gradient(..., limits=c(3, 6.4))
Другие вопросы по тегам