4.3 일변량 범주형 데이타 그래프
범주형의 변수 1개에 대한 그래프를 그려 보겠습니다.
사용하는 변수는 Cars93$Cylinders
컬럼 한 개(일변량)로, 이 변수는 6개의 수준을 갖는 Factor
형 변수 즉, 범주형 변수임을 알 수 있습니다.
이 절에서의 일변량 범주형 데이터에 대하여 다음의 그래프를 그려 보기로 한다.
특히 여기에서 사용되는 함수들의 첫 번째 인수는 모두
table()
함수를 이용한 도수분포표가 된다는 것을 주의하기 바랍니다.
4.3.1 막대 그래프
막대 그래프(bar graph)는 바 차트(bar chart), 바 그래프(bar graph) 등으로도 불리며, barplot()
함수를 이용하여 막대 그래프를 그릴 수 있습니다.
막대 그래프는 명목형 변수 X를 전체 데이터의 값에 비례하여 높이와 갯수를 나타내는 직사각형의 막대로 표현하는 차트나 그래프를 말합니다. 막대는 수직 또는 수평으로 그릴 수 있습니다.
barplot()
함수의 첫 번째 인수는 명목형 변수의 도수분포표입니다. 변수의 도수분포표는 table()
함수로 구할 수 있습니다.
library(MASS)
##-------- plot for one variable, categorical data
# bar plot : barplot()
<- table(Cars93$Cylinders) # Cylinder 컬럼의 도수분포료
table_cyl barplot(table_cyl, main = "bar plot : barplot()")
자세한 사용방법은 ? barplot
으로 확인할 수 있습니다. [참고 : 바차트]
4.3.2 클리브랜드 점 그래프
클리브랜드 점 그래프(Cleveland dot plot)는 Cleveland 라는 사람이 제안한 형식의 그래프로 Base Graphics
패키지의 dotchart()
함수를 이용하여 그릴 수 있습니다.
이 그래프는 x축을 연속형 변수로, 그리고 y축을 명목형 변수로 표현한다. 그런데, 이 그래프에서 주요 변수는 Y축을 이루는 명목형 변수입니다.
앞에서 살펴본 막대 그래프의 X축과 Y축을 바꿔 놓고, 그림을 막대가 아닌 점으로 표현한 것이 클리브랜드 점 그래프입니다.
Y축의 변수를 reorder()
함수 또는 sort()
함수를 이용하여 발생도수의 오름차순/내림차순으로 정렬할 수 있습니다.
library(MASS)
# cleveland dot plot : dotchart()
# frequency table
<- table(Cars93$Cylinders)
table_cyl
# names for label
<- names(table_cyl)
Cylinders
dotchart(as.numeric(table_cyl),
labels = Cylinders, main = "cleveland dot plot")
as.numeric(table_cyl)
은 도수분포표의 발생 도수만을 벡터로 추출합니다.
[참고사항]
Cars93$Cylinders
컬럼의 도수분포표를 sort()
함수를 이용하여 발생 도수를 오름차순으로 정렬하고, 이를 인수로 하여 클리브랜드 점 그래프를 그려 보겠습니다.
library(MASS)
# cleveland dot plot : dotchart()
# frequency table
<- sort(table(Cars93$Cylinders)) # 발생 도수의 오름차순 정렬
table_cyl_inc
# names for label
<- names(table_cyl_inc)
Cylinders
dotchart(as.numeric(table_cyl_inc),
labels = Cylinders, main = "cleveland dot plot")
- Y축은 순서가 중요하지 않은 범주형 데이터이기 때문에 X축의 발생 도수로 정렬하는 것도 의미가 있습니다.
자세한 사용방법은 ? dotchart
로 확인할 수 있습니다.
4.3.3 파이 차트
파이 차트는 도수분포표를 비율로 나타낼 때 사용합니다. 전체를 100%라고 했을 때, 각각이 차지하는 비율을 한 눈에 볼 수 있게 시각화하는 것입니다.
역시 이 파이 차트를 그릴 떄도 기본적으로 범주형 변수를 인수로 하여 table()
함수로 구한 도수분포표가 됩니다.
library(MASS)
# pie chart : pie()
<- table(Cars93$Cylinders)
table_cyl # frequency table
<- names(table_cyl)
Cylinders # names for label
pie(table_cyl, labels = Cylinders, main = "pie chart")
자세한 사용방법은 ? pie
로 확인할 수 있습니다. [참고 : 파이차트]