2017년 8월 25일 금요일

R-Studio로 Bar Graph 작성하기 (5): 양(positive)의 값과 음(negative)의 값을 갖는 bars를 다르게 색상 설정하기

다음의 자료를 보자. 우리는 climate 데이터를 갖고 있고, 이 데이터에서 우리는 pos라는 변수를 만들었다. 이 변수는 값이 양(positive)의 값인지 음(negative)의 값인지를 보여준다.

library(gcookbook) # For the data set
csub <- subset(climate, Source=="Berkeley" & Year >= 1900) 
csub$pos <- csub$Anomaly10y >= 0
csub
 
 
Source
<chr>
Year
<dbl>
Anomaly1y
<dbl>
Anomaly5y
<dbl>
Anomaly10y
<dbl>
Unc10y
<dbl>
pos
<lgl>
101Berkeley1900NANA-0.1710.108FALSE
102Berkeley1901NANA-0.1620.109FALSE
103Berkeley1902NANA-0.1770.108FALSE
104Berkeley1903NANA-0.1990.104FALSE
105Berkeley1904NANA-0.2230.105FALSE
106Berkeley1905NANA-0.2410.107FALSE
107Berkeley1906NANA-0.2940.106FALSE
108Berkeley1907NANA-0.3120.105FALSE
109Berkeley1908NANA-0.3280.103FALSE
110Berkeley1909NANA-0.2810.101FALSE
우리는 이 데이터를 이용하여 bar graph를 작성하는데, pos 변수로 bar의 색상을 설정한다. 우리는 position=“identity” 옵션을 사용한다.


ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos)) + geom_bar(stat="identity", position="identity")



여기에는 몇몇 문제들이 존재한다. 우선, 색상은 우리가 원하는 것과 정반대이다. 둘째, 범례는 불필요하다. 우리는 색상을 scale_fill_manual()을 이용해 변화시키고, guide=FALSE를 이용하여 범례를 제거한다. 또한, 외곽선의 두께를 mm 단위로 설정하는 size와 colour를 이용하여 각각의 bar에 얇은 검은색 외곽선을 더할 것이다.

ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos)) +
geom_bar(stat="identity", position="identity", colour="black", size=0.25) + scale_fill_manual(values=c("#CCEEFF", "#FFDDDD"), guide=FALSE)


이 새 그래프는 당신의 마음에 드는가? 이것도 당신의 선택이다. 이도 마음에 들지 않는다면, 다시 바꿀 수 있다.
이 블로그에 실린 내용은 “Winston Chang (2013) R Graphics Cookbook”에 실린 내용을 기반으로 작성하였다.














댓글 없음:

댓글 쓰기