R프로그래밍,통계학/R까기2
ggplot2로 하는 정교한 시각화-막대그래프(geom_bar)
slow_steady
2020. 8. 1. 21:21
반응형
막대그래프는 범주별 빈도수를 나타낼 때 주로 쓰입니다.
저번에는 산점도로 해보았는데 이번에는 막대그래프로 데이터를 시각화 해보겠습니다.
1. 범주별 빈도수 나타내기
DF <- read.csv("example_studentlist.csv")
library(ggplot2)
library(ggthemes)
ggplot(DF,aes(x=bloodtype,fill=sex)) + geom_bar()
#table 함수를 사용하지 않아도 ggplot2가 알아서 도수를나타내줍니다.
#성별로 막대의 컬러가 나타납니다. 성별로 표시하면서 하나의 막대에 누적되서
-table 함수를 사용하지 않아도 ggplot2가 알아서 도수를 나타내줍니다.
-성별로 막대의 컬러가 나타납니다. 하나의 막대에 누적되어 나타납니다.
ggplot(DF,aes(x=bloodtype,fill=sex)) + geom_bar(position="dodge")
#dodge : 피하다
ggplot(DF,aes(x=bloodtype,fill=sex)) + geom_bar(position="identity")
ggplot(DF,aes(x=bloodtype,fill=sex)) + geom_bar(position="fill",width=0.3)
2.범주별 '이미 정해진 수치값' 나타내기
막대그래프의 특성상 명목형 변수에 대한 도수를 나타내주는데 주로 쓰이는데,
만약에 y축의 값을 도수가 아니라 '이미 정해진값'으로 나타내고 싶은 경우에는 어떻게 하면 될까요 ?
그럴때는 stat= identity 옵션을 적용해주면 됩니다.
mheightByblo <- tapply(DF$height, DF$bloodtype, mean) #키를 혈액형 별로 평균내라.
DF2 <- as.data.frame(mheightByblo)
DF2$bloodtype <- rownames(DF2) # x:명목형(혈액형), y:수치형(평균키)로 데이터프레임을 만들어줍니다.
ggplot(DF2, aes(x=bloodtype, y=mheightByblo, fill=bloodtype)) +geom_bar(stat="identity") + scale_fill_brewer()
반응형