2016-11-11 7 views
1

나는 시간이 지남에 따라 두 군의 인구에 데이터 집합을 가지고 : 나는 잘 선 차트를 할 수 있어요ggplot을 사용하여 여러 줄의 꺾은 선형 차트에 음영 처리 된 영역을 추가하려면 어떻게합니까?

dat <- data.frame(Year=rep(c(2012, 2013, 2014, 2015), each=2), 
        Region=rep(c("County1", "County2"), 4), 
        Count=c(125082, 122335, 126474, 121661, 128220, 121627, 130269, 121802)) 

:

ggplot(data=dat, aes(x=Year, y=Count, group=Region, fill = Region)) + 
geom_line() 

enter image description here

을 그러나, 나는되고 싶어 슈퍼 차가워지고 색이있는 선 아래 영역을 채 웁니다. 내가 geom_area()를 사용하려고하면, county1 이상 county2 스택 같다 :

ggplot(dat, aes(x=Year, y=Count, fill = Region)) + geom_area() 

enter image description here

을 내가 원하는 아니에요. 도와 줘서 고마워!

+2

'geom_ribbon'을 확인하십시오. – ddunn801

답변

1

당신은 County1County2 라인 사이의 공간을 채우기 위해 geom_ribbon()를 사용해서 다양한 형식으로 데이터를 바꿀 수 있습니다 :

library(ggplot2); library(reshape2) 
ggplot(dcast(Year ~ Region, data = dat), aes(x = Year)) + 
    geom_ribbon(aes(ymin = County1, ymax = County2, fill = "band")) + 
    scale_fill_manual("", values = "#AA44CC") + ylab('count') 

enter image description here

여러 리본, 단순히 리본의 또 다른 레이어를 추가 채우려면 더 나은 결과를 시각화하기 위해 여기에서 121000부터 시작합니다 :

ggplot(dcast(Year ~ Region, data = dat), aes(x = Year)) + 
    geom_ribbon(aes(ymin = County1, ymax = County2, fill = "red")) + ylab('Count') + 
    geom_ribbon(aes(ymin = 121000, ymax = County2, fill = "green")) 

enter image description here

+0

고마워요! county2에 두 번째 리본을 추가하는 방법 (즉, 음모의 맨 아래에서 county2의 값으로 이동하는 방법)을 알고 계십니까? –

+0

'ymin'을 맨 밑줄로 사용하고'ymax'를 'county2'값으로 사용하여 리본 레이어를 추가 할 수 있습니다. 업데이트를 참조하십시오. – Psidom