2018년 5월 8일 화요일

[하루에 한 R] heatmap.2() 그림을 그릴때 성가신 것 바로잡기

아래의 예제 그림에서와 같이 "Color Key and Histogram"이라는 라벨이 두 줄로 표시되면서 바로 아래의 그림과 바싹 붙어서 나타나는 것이 아주 보기에 좋지 않다.



이것을 어떻게 해결하면 좋을까? 이 그림의 위치를 heatmap 바로 위로 옮기면 그림을 그릴 영역의 폭이 넓어지는 셈이므로 Color Key and Histogram이 한 줄로 펼쳐지면서 바로 아래의 color key 그림과 적당한 간격을 두고 배열될 것으로 생각을 하였다.

heatmap.2() 함수를 통하여 그려지는 것은 1. heatmap, 2. Row dendrogram, 3. Column dendrogram, 그리고 아주 성가신 4. Key이다. 이것은 lmat/lhei/lwid라는 매트릭스를 이용하여 그 위치와 크기를 조절할 수 있다. 상세한 것은 다음의 페이지에 잘 나온다.

Moving color key in R heatmap.2 (function of gplots package)

그런데 실제로 lmat 3x2 매트릭스로 재조정한 다음 key를 오른쪽 위에 오게 해도 여전히 Color Key and Histogram은 두 줄로 표시되었다. 이 라벨 자체의 크기를 줄이면 한 줄로 표시되면서 그림이 예쁘게 표시될지도 모른다. 그러나 heatmap.2(x,...,key.par=list(cex=0.7)) 방식을 사용해 보았지만 key에서 표시되는 모든 글씨가 전부 줄어듦에도 불구하고 Color Key and Histogram은 절대로 한 줄에 표시되지 않는다.

그런데 다른 방법도 가능하다. Histogram을 꼭 key에 표시해야 하는가? 이는 heatmap.2() 함수 안에서 density.info="none"이라는 인수를 설정하면 된다.



아주 훌륭하다. 아직도 불만스러운 점이 남았는가? 그렇다 key의 위아래 폭이 너무 크다. 다시 말해서 높이가 너무 높다는 것이다. 이는 lhei 인수를 적절히 수정하면 된다.


맨 마지막 그림에서 사용한 설정은 heatmap.2(x,...,cexCol=1,cexRow=0.7,margins=c(4,20),density.info="none",lhei=c(1.5,7))이다.

오늘 살펴본 heatmap.2() 함수의 조작은 다음 사이트를 참고하였다.

Heatmaps in R, two ways

댓글 없음: