통계마당에 올라온 김지형선생님의 plot http://statistics4everyone.blogspot.kr/2016/05/nightingale-rose-plot.html을 R의 ggplot2로 다시 그려보았습니다. 사용한 데이타는 다음과 같습니다.

``````data=read.csv("untitled.csv")
data``````
``````           X  A    B  C   D  E   F  G
1    January 10  9.0  8 7.0  6 5.0  4
2   February  5  4.5  4 3.5  3 2.5  2
3      March  7  6.0  5 4.0  3 2.0  2
4      April  9  7.0  8 7.0  6 5.0  4
5        May 11  8.0  4 3.5  3 2.5  2
6       June 13  9.0  5 4.0  3 2.0  2
7       July 15 10.0  8 7.0  6 5.0  4
8     August 17 11.0  4 3.5  3 2.5  2
9  September 19 12.0  5 4.0  3 2.0  2
10   October 21 13.0  8 7.0  6 5.0  4
11  November 23 14.0  4 3.5  3 2.5  2
12  December 25 15.0  5 4.0  3 2.0  2
13           NA   NA NA  NA NA  NA NA
14           NA   NA NA  NA NA  NA NA
15           NA   NA NA  NA NA  NA NA
16           NA   NA NA  NA NA  NA NA
17           NA   NA NA  NA NA  NA NA
18           NA   NA NA  NA NA  NA NA
19           NA   NA NA  NA NA  NA NA
20           NA   NA NA  NA NA  NA NA
21           NA   NA NA  NA NA  NA NA``````

데이타를 이용하여 그림을 그리려면 행과 열을 바꾸고 long form으로 변환해주어야 합니다.

``````require(reshape2)

data=data[1:12,]
data1=data.frame(t(data))
data2=data1[2:8,]
colnames(data2)=month.name
data2\$group=row.names(data2)
data3=melt(data2,id="group")
data3\$value=as.numeric(data3\$value)
``````  group variable value
1     A  January    10
2     B  January     9
3     C  January     8
4     D  January     7
5     E  January     6
6     F  January     5``````

먼저 bar plot을 그린후 coord_polar()로 변환해주는 것이 이해하기 쉽습니다.

``````require(ggplot2)
ggplot(data=data3,aes(x=variable,y=value,fill=group))+
geom_bar(stat="identity")``````

색깔 palette 중 “Greens”를 적용해보면 다음과 같습니다.

``````ggplot(data=data3,aes(x=variable,y=value,fill=group))+
geom_bar(stat="identity")+
scale_fill_brewer(palette="Greens")+xlab("")+ylab("")``````

coord_polar()를 이용하여 좌표축을 원형 좌표계로 변환시킵니다.

``````ggplot(data=data3,aes(x=variable,y=value,fill=group))+
geom_bar(stat="identity")+
coord_polar()+
scale_fill_brewer(palette="Greens")+xlab("")+ylab("")``````