2013-07-23 2 views
2

Я читал около Lasagna plots в R. В приложении к документу в ссылке авторы имеют много кода для реализации этих графиков. Но это pdf, и я не могу копировать в RStudio (по крайней мере, я не понял, как). Кто-нибудь сделал это в пакете или кто-нибудь имеет код в более удобном для использования формате?Лазанья участки в R

+3

Они выглядят вкусно, +1 ... от просмотра рис. 1, я предполагаю, что какое-то целевое использование «heatmap()» может привести вас куда-то в направлении ... – texb

+0

Из статьи: «Лазанья: заговорка альтернатива спагетти» :-) –

+0

Не было бы проще попытаться связаться с авторами статьи? – joran

ответ

2

Лазаньские участки кажутся ровно теплыми картами, хотя название симпатично. Карты тепла хорошо нанесены в других упаковках. Рассмотрим первую примерную диаграмму в коде, обозначенном Карлом Виттофтом. Вы можете воспроизвести его в ggplot, как это:

## Create the data 
palette <- brewer.pal(4, "PuOr")[-2] 
## the matrix containing data for Figure 02a 
H.mat <- matrix(NA, nrow=4, ncol=6) 
H.mat[1, 1:6] = 100*c(2, 1, 1, 1, 1, 2) 
H.mat[2, 1:6] = 100*c(2, 2, 2, 3, 2, 1) 
H.mat[3, 1:6] = 100*c(2, 2, 1, 1, 1, 3) 
H.mat[4, 1:6] = 100*c(3, 3, 2, 1, 2, 3) 

library(ggplot2) 
library(reshape2) 
rownames(H.mat)<-c('P1','T1','P2','T2') 
colnames(H.mat)<-seq(ncol(H.mat)) 
names(dimnames(H.mat))<-c('Subject','Time') 
H.df<-melt(H.mat) 

В зависимости от того, что вы хотите, вы можете получить различные типы окраски.

# For continuous values. 
ggplot(H.df,aes(x=Time,y=Subject,fill=value)) + geom_tile(colour='black') 

enter image description here

# If you consider the value to be categorical. 
ggplot(H.df,aes(x=Time,y=Subject,fill=factor(value))) + 
    geom_tile(colour='black') 

enter image description here

# If you want those exact colours the author used: 
col<-palette[match(ordered(H.df$value),levels(ordered(H.df$value)))] 
ggplot(H.df,aes(x=Time,y=Subject,fill=col)) + 
    geom_tile(colour='black') + scale_fill_identity() 

enter image description here

+1

Я не мог понять, как правильно использовать точные цвета, которые сделал автор, поэтому я использовал дрянной хак. Если кто-то может сказать мне, как правильно кормить пользовательские цвета 'ggplot' более естественным образом, дайте мне знать, и я изменю ответ. – nograpes

+0

Думаю, у вас это есть! –

+0

+1 cheesy hack to lasagna plot :) –

4

Чтобы ответить на актуальный вопрос: код в документ в формате PDF здесь: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2937254/bin/NIHMS225391-supplement-1.pdf

И я легко выбрать код в Adobe Reader и копировать/вставить его в текстовый документ.

+0

Dang. Это сработало на этот раз. Благодарю. Во всяком случае, теперь ссылка на участки Лазаньи здесь. Однако, учитывая комментарий от @TexB, я не уверен, что я должен отметить это как ответ, так как может быть лучший код. –

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