2012-10-17 4 views
1

gplots 패키지의 heatmap.2 함수에서 히트 맵 자체의 행 높이를 줄이는 동시에 가로 사이드 막대 높이를 늘릴 수 있습니까 (ColSideColors 인수로 표시)?히트 맵 자체의 높이를 줄이는 동시에 수평 사이드 바 높이를 늘리는 방법은 무엇입니까?

library('gplots') 
prob_matrix=replicate(100, rnorm(20)) 
ids=paste("patient",c(1:100),sep="_") 
type_colors=sample(c("red","blue","cyan","pink","yellow","green"), length(ids), replace = TRUE, prob = NULL) 
heatmap.2(prob_matrix, ColSideColors=type_colors,RowV=NULL,trace="none") 

I가 ColSideColors=subtype_colors 의해 생성 된 수평 사이드 바하고자 높이를 증가시켜야하고, 히트 맵의 행 박형화.

확장을 위해 각 열의 너비를 편집 할 수있는 방법 은 플롯을 출력 할 PDF 또는 그래픽 장치의 너비 크기입니까? 그래서, 위의 경우, 열의 폭을 prob_matrix heatmap보다 크게하고 싶습니다.

+1

재현 가능한 예를 들어주세요. – Spacedman

+0

좋습니다. 나는 작은 편집을 만들었고, 이제 붙여 넣기를 할 수있다. – Spacedman

답변

1

나는 그 기능을 하드 코딩했다고 생각한다. heatmap.2 함수의 로터리 (196)가 라인 :

if (!missing(ColSideColors)) { 
      if (!is.character(ColSideColors) || length(ColSideColors) != 
       nc) 
       stop("'ColSideColors' must be a character vector of length ncol(x)") 
      lmat <- rbind(lmat[1, ] + 1, c(NA, 1), lmat[2, ] + 
       1) 
      lhei <- c(lhei[1], 0.2, lhei[2]) 
     } 

0.2

가 그 색상 막대에 할당 된 높이이다. heatmap.2 사본을 만들어 편집하면 다른 것으로 설정할 수 있습니다. 새 인수 인 ColSideHeight을 기본값 0.2로 작성하고 0.2를 ColSideHeight으로 변경하십시오.

+0

고마워요. 히트 맵 행의 높이를 줄이려면 어떻게해야합니까? 나는'lmat'과'lhei' 논쟁으로 놀고 있었지만 성공하지는 못했습니다. – oisyutat

+0

지금 처리 할 수 ​​있습니다. 감사. – oisyutat

관련 문제