2011-12-21 7 views
5

gplots에 대한 질문이 있습니다. 나는 기능 heatmap.2을 사용하려면, 따라서 나는 0 1. 일반적으로 symkey=TRUE에 컬러 키에 내 대칭 지점을 변경하려면 당신은 색상과 같이 관리하는 년 Colorbar가 생성되는 col=redgreen() 사용R : heatmap.2 컬러 키 변경

red = -2 to -0.5 
black=-0.5 to 0.5 
green= 0.5 to 2 

red= -1 to 0.8 
black= 0.8 to 1.2 
green= 1.2 to 3 

이 가능한 같은 것입니다 :

지금 나는이 같은 년 Colorbar을 만들려면?

감사합니다.

답변

9

the heatmap.2 help file을 보면 breaks 인수가 필요해 보입니다. 도움말 파일에서 :

breaks (선택 사항) 색상으로 비닝 (binning)의 X, 또는 브레이크 포인트의 정수에 대한 분할 점을 나타내는 숫자 벡터를 사용 하나,이 경우 브레이크 포인트는 동일한 간격됩니다 min (x)와 max (x) 사이

따라서 breaks을 사용하여 각 색상의 컷오프 지점을 지정합니다. 예컨대 :

library(gplots) 

# make up a bunch of random data from -1, -.9, -.8, ..., 2.9, 3 
# 10x10 
x = matrix(sample(seq(-1,3,by=.1),100,replace=TRUE),ncol=10) 

# plot. We want -1 to 0.8 being red, 0.8 to 1.2 being black, 1.2 to 3 being green. 
heatmap.2(x, col=redgreen, breaks=c(-1,0.8,1.2,3)) 

결정적인 비트가 당신의 단절을되는 breaks=c(-1,0.8,1.2,3)입니다.

+0

감사합니다. 수학. 커피. 색상에 몇 가지 오버랩을 만드는 방법이 있습니까? 일반적으로 75 색을 생성하는 redgreen (75)을 사용합니다! – Lisann

+0

에서와 같이, -1에서 0.8까지는 빨강의 색조가 다양하고, 0.8에서 1.2까지 다양한 검은 색 음영 (!), 1.2-3의 다양한 녹색 음영이 필요합니까? '휴식 '에 휴식 시간을 더 추가 할 수 있습니다. 예 : seq (0.8, 1.2, length = 5), seq (1.2, 3, length = 5)'각 break마다 약 5 개의 음영을 갖는 c (seq (-1,0.8, length = 5), seq 'redgreen'은 빨강에서 녹색까지 선형 적으로 확장하기 때문에 각 나누기마다 같은 수의 색조를 가져야합니다. 불균일하다면 서로의 색이 조금씩 들어올 것입니다. 그러나 '붉은 녹색'은 점차적 인 색 그라데이션이므로 어떻게 빨간색 멈추고 검은 시작 등 언제 알려주시겠습니까? –

+0

고마워요!이 내가 정확히 무엇이 필요했다 :) – Lisann