2013-01-13 2 views
1

I합니다 (AvgByQ 벡터에서) 열 맵을 생성하기 위해 다음 코드를 사용하고 있습니다 :균일하지 않은 블록 크기의 히트 맵을 생성하는 방법은 무엇입니까?

library(gplots) 
x<-c(0, 5, 30, 80) 
y<-c(150, 2000, 2010, 3000) 
AvgByQ<-c(20.25, 13.02, 0.00, 0.00, 0.00, 0.00, 8.31, 14.66, 0.00) 
AvgByQMatrix <- matrix(AvgByQ, ncol=3, byrow=TRUE) 
heatmap.2(AvgByQMatrix, cellnote=AvgByQMatrix, notecol="black",col=redblue(256),key=TRUE, dendrogram = "none", trace="none") 

는 어떻게 X와 Y 벡터 값/블록 크기에 맞게 크기를 변경할 수 있습니까? 또한 스케일링 문제와 관련하여 행 순서 (1, 3, 2)가 엉망이되는 이유는 무엇입니까? 감사합니다.

+0

난 당신이 x와 y X와 행렬을 확장 얼마나 혼란 있어요 : 나는 image() 기능이 작업을 수행하는 방법 만 알고 있지만 다음과 같은 접근 방식은 (나를 위해 일했다 y는 1x5 벡터이며, 3x3 행렬을 스케일 할 것인가? 여기에 뭔가가 빠져 있습니다. – agstudy

+0

X (5, 25, 50) Y (1850, 10, 990) – user971956

+0

감사합니다. //stackoverflow.com/questions/12040240/increasing-row-height-in-r-heatmap-function – user971956

답변

0

나는 이것이 당신을 도울 것 같아요. ?

#using image() function 
x<-c(0, 5, 30, 80, 1000) 
y<-c(150, 2000, 2010, 3000) 
grd <- expand.grid(x=x, y=y) 
z<-matrix(grd$x*2-grd$y*3, nrow=length(x), ncol=length(y), byrow=TRUE) 
image(x=x, y=y, z=z, col=rainbow(20)) 

#another option with z-scale 
source("image.scale.r") #http://menugget.blogspot.de/2011/08/adding-scale-to-image-plot.html 
x11(width=5, height=4) 
layout(matrix(1:2, nrow=1, ncol=2), widths=c(4,1), heights=4, respect=TRUE) 
layout.show(2) 
par(mar=c(4,4,1,1)) 
image(x=x, y=y, z=z, col=rainbow(20)) 
par(mar=c(4,0,1,4)) 
image.scale(z, col=rainbow(20), horiz=FALSE, xlab="", ylab="", xaxt="n", yaxt="n") 
axis(4) 
box() 

enter image description here

관련 문제