Перемещение цветовой клавиши в R heatmap.2 (функция пакета gplots)
Я уже пару раз читал справочное руководство для heatmap.2, а также в различных онлайн-уроках, которые я не читал о способе перемещения цветной клавиши в другое положение. Теперь мне интересно, если это вообще возможно?
Клавиша цвета находится в левом верхнем углу по умолчанию, если вы используете функцию heatmap.2 из пакета gplots.
2 ответа
Положение каждого элемента в heatmap.2
сюжет можно контролировать с помощью lmat
, lhei
а также lwid
параметры. Они проходят мимо heatmap.2
к layout
команда как:
layout(mat = lmat, widths = lwid, heights = lhei)
lmat
это матрица, описывающая, как экран должен быть разбит. По умолчанию heatmap.2 делит экран на сетку из четырех элементов, поэтому lmat
матрица 2x2 Число в каждом элементе матрицы описывает порядок построения следующих четырех графиков. Heatmap.2 отображает свои элементы в следующем порядке:
- Тепловая карта,
- Строка дендрограммы,
- Колонка дендрограммы,
- ключ
так по умолчанию lmat
является:
> rbind(4:3,2:1)
[,1] [,2]
[1,] 4 3
[2,] 2 1
Например, если вы хотите поместить ключ под тепловую карту, вы должны указать:
> lmat = rbind(c(0,3),c(2,1),c(0,4))
> lmat
[,1] [,2]
[1,] 0 3
[2,] 2 1
[3,] 0 4
lwid
а также lhei
являются векторами, которые определяют высоту и ширину каждой строки и столбца. По умолчанию c(1.5,4)
для обоих. Если вы измените lmat
вам придется или, возможно, захотеть изменить их. Для приведенного выше примера, если мы хотим, чтобы все остальные элементы были одинакового размера, но в нижней части нужна тонкая цветная клавиша, мы можем установить
>lwid = c(1.5,4)
>lhei = c(1.5,4,1)
Затем мы готовы построить тепловую карту:
>heatmap.2(x,...,lmat = lmat, lwid = lwid, lhei = lhei)
Это построит тепловую карту с дендрограммой столбца над тепловой картой, дендрограммой строки слева и ключом внизу. К сожалению, заголовки и метки ключа жестко закодированы.
увидеть ?layout
для более подробной информации о том, как layout
работает.
В довольно длинном коде указаны определенные регионы, определенные вызовами par heatmap.2
и я не видел его оригинального автора или каких-либо "ревизоров" вокруг этих частей, хотя они иногда посещают R-help. Основные размеры графика задаются 2-элементным вектором. margins
, Вот несколько мест, где вам может потребоваться внести изменения:
#1)
if (!missing(RowSideColors)) {
par(mar = c(margins[1], 0, 0, 0.5))
image(rbind(1:nr), col = RowSideColors[rowInd], axes = FALSE)
#2)
if (!missing(ColSideColors)) {
par(mar = c(0.5, 0, 0, margins[2]))
image(cbind(1:nc), col = ColSideColors[colInd], axes = FALSE)
#3)
par(mar = c(margins[1], 0, 0, margins[2]))
#4)
par(mar = c(margins[1], 0, 0, 0))
#5)
par(mar = c(0, 0, if (!is.null(main)) 5 else 0, margins[2]))
#6
if (key) {
par(mar = c(5, 4, 2, 1), cex = 0.75)