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))