R
[R] 시각화 - 원형차트, 양방향 barplot
ㄷㅐ장님
2022. 1. 27. 23:26
원형 차트
coord_polar(theta = 'y',start=0)
week_cnt <- plyr::count(employees,"lubridate::wday(employees$HIRE_DATE,week_start = 1,label = T)")
names(week_cnt) <- c('week','cnt')
week_cnt$pct <- round(prop.table(week_cnt$cnt)*100)
ggplot(data=week_cnt,aes(x='',y=pct,fill=factor(week)))+
geom_bar(stat='identity')+
coord_polar(theta = 'y',start=0)+
theme_void()+
geom_text(aes(label=paste0(pct,'%')),position = position_stack(vjust=0.5))+
scale_fill_brewer(palette = 'Set3')
[문제175] blood.csv파일의 데이터를 이용해서 원형차트를 생성해주세요.
blood <- read.csv("c:/data/blood.csv",header=T)
bl <- data.frame(table(blood$BLOODTYPE))
names(bl) <- c("bloodtype",'freq')
bl$pct <- prop.table(bl$freq)*100
ggplot(data=bl,aes(x='',y=pct,fill=bloodtype))+
geom_bar(stat='identity')+
coord_polar(theta = 'y')+ #막대그래프의 y축을 붙여서 원으로
theme_void()+
theme(legend.position = 'bottom')+#left,right,bottom,top
geom_text(aes(label=paste0(bloodtype," ",pct,'%')),position = position_stack(vjust=0.5))+
scale_fill_brewer(palette = 'GnBu')
양방향 barplot
반대방향 데이터값을 음수로 만든 후 막대그래프를 생성한다.
bl_gender <- aggregate(NAME~GENDER+BLOODTYPE,blood,length)
names(bl_gender)[3] <- 'CN'
bl_gender[bl_gender$GENDER == 'M','CN']<-bl_gender[bl_gender$GENDER == 'M','CN']*-1
ggplot(data=bl_gender,aes(x=BLOODTYPE,y=CN,fill=GENDER))+
geom_bar(stat='identity')+
coord_flip()+
labs(x="혈액형",y="인원수",fill='성별')+
scale_fill_brewer(palette = "GnBu",labels=c("여","남"))