2016-01-11 3 views
1

Я использую функцию heatmap для построения матрицы. Каждый столбец в матрице представляет один образец, и у меня есть 4 типа выборки, каждый из которых имеет различное количество. Можно ли покрасить метки вдоль оси x по типу образца?R Графические метки оси X цвета по группам

scaleyellowred <- colorRampPalette(c("lightyellow", "red"), space = "rgb")(10) 
heatmap([email protected], Rowv = NA, Colv = NA, col = scaleyellowred) 

ответ

1

Вы не возражаете, используя ggplot2? ..

library(ggplot2) 
data("diamonds") 
library(dplyr) 

diamonds %>% select(cut, color, price) %>% 
     group_by(cut, color) %>% summarize(mean.price=mean(price)) -> data.set 
data.set %>% ggplot(data=., mapping=aes(x=cut, y=color, fill=mean.price)) + geom_tile() + 
     theme(axis.text.x=element_text(color=rainbow(ncol(data.set)))) 
+0

Нет, я не против, но я не понимаю, что означает%>%, и я получаю ошибку в библиотеке (dplyr): нет пакета под названием 'dplyr' (я могу его установить, но что это для ?) –

+1

ah,%>% - оператор трубы. Фактически это происходит из пакета magrittr и довольно широко используется для обработки данных. Идея такова: data.frame%>% сделать с ней и отправить результат дальше%>% do smth else и т. д., где%>% означает «отправить дальше», так сказать .. вам понадобится dplyr, вы может установить его с install.packages («dplyr»), он находится на кране. это популярный пакет для преобразования данных. Я использовал его здесь для создания выборочных данных. Дайте мне знать, если вам нужна помощь в настройке сюжета. – AlexT

0

heatmap.2() из gplots имеет colCol аргумент в пользу этого. Настройте вектор имен цветов, соответствующих вашим типам образцов. Для простоты предположим, что они сгруппированы в исходной матрице.

m <- matrix(rnorm(400), ncol=40) 
sample.types <- c(rep("Blue", 10), rep("Green", 10), rep("Red", 10), rep("Purple", 10)) 

library(gplots) 
heatmap.2(m, trace="none", colCol = sample.types) 

enter image description here

Обратите внимание, что типы образцов сохранили правильный цвет, когда кластерный.

Смежные вопросы