2013-11-21 2 views
5

y 축 값의 함수로서 색상 barplot :ggplot2 : I는 (데이터 + barplot)이 간단한 코드를

# Palette 
LtoM <-colorRampPalette(c('red', 'yellow')) 
Mid <- "snow3" 
MtoH <-colorRampPalette(c('lightgreen', 'darkgreen')) 
: I는 다음의 표를 이용하여 히트 맵을 생성 한편
dat <- c('Jan','Feb','Mar', 'Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec') 
val <- c(-2.5, 3, 2.5, -3.3, -1, 0.2, 6, 4.3, 5.5, 2, -1.9, -2.3) 
df <- data.frame(dat, val) 
bar <- ggplot(data = df, aes(x = factor(dat, levels = month.abb), y = val)) + 
    geom_bar(stat = 'identity') 
print(bar) 

에 의해 불려

:

scale_fill_gradient2(low = LtoM(100), mid = Mid, high = MtoH(100)) 

지금 나는 내가 공동 싶습니다이다, 내 barplot에 대한 유사한 색상 팔레트를 사용하고 싶습니다 각 막대에서 높이의 함수가됩니다 (최대 y에 대해 최소 y는 녹색에서 빨간색으로 일부 등급).

어떻게 할 수 있습니까?

답변

3

기본적으로 현재 코드가 있습니다. scale_fill_gradient 함수를 추가하기 만하면됩니다.

custom colors

bar <- ggplot(data = df, aes(x = factor(dat, levels = month.abb), y = val, 
       fill=val)) + 
     geom_bar(stat = 'identity') + 
     scale_fill_gradient2(low=LtoM(100), mid='snow3', 
     high=MtoH(100), space='Lab') 

그러나 scale_fill_gradient2 그라디언트-ING 돌볼 수 있도록하는 것은 꽤 잘

bar <- ggplot(data = df, aes(x = factor(dat, levels = month.abb), y = val, 
       fill=val)) + 
     geom_bar(stat = 'identity') + 
     scale_fill_gradient2(low='red', mid='snow3', high='darkgreen', space='Lab') 

generated colors

+0

lilster을 회신에 대한 감사를 작동합니다. 사실 나는 당신의 첫 번째 그래프를 얻는 방법을 알고 있었지만 정확하게 내가 무엇을했는지는 알지 못합니다. val = -2 (그리고 그 사이의 컬러 스케일) 일 때 val = -2라고하는 모든 막대를 '빨강'과 '녹색'으로 지정하고 싶습니다. 그것이 나타내는 값에 따라 각 막대가 (균일하게) 채색되어있는 것과 다릅니다. 나는 지금 내가 조금 더 분명해 졌기를 바란다 – tagoma

+0

나는 내가 더 자세하게 여기에서 필요로한다라고 생각한다. '저는 val = -2의 모든 막대를 val = 5 일 때'red '로, val = 5 일 때는'green '로 설정하고 싶습니다.' <- 두 그래프는 모두 만족 스럽습니다. '은 각 바가 나타내는 값에 따라 (균일하게) 각 바가 다른 것과 다릅니다.' <- 그건 다르지만, 답안에서 어느 색깔도 균일하게 색깔이 없습니다. 눈금 채우기 그래디언트는 최소값을 "reddest"로 설정하고, 최대 값을 "가장 녹색"으로 설정하고, 그 사이의 색상 스케일을 설정합니다. 이미지 파일 첨부와 함께 이것이 어떻게 다른지 설명해 주시겠습니까 – lilster

+0

안녕하세요 lilster 감사합니다. 인내심을 갖고 있습니다. :) 'http : //www.quinn-curtis'와 같은 음모를 그려 보겠습니다. .com/QCChar96.jpg 어떤 y 값이라도 모든 막대는 같은 색이며 색은 y 값의 함수라는 것을 알 수 있습니다. – tagoma