59doit
[ R ] 데이터시각화 #1 이산변수 시각화 본문
데이터시각화
데이터 분석의 도입부에서 전체적인 데이터 구조를 살펴보기(탐색적) 위해서 시각화 도구 사용
이산변수: barplot(막대 차트), pie(원형 차트), abline(선 추가)
연속변수: hist(히스토그램), plot(산점도), boxplot(상자 박스), scatterplot3d(3차원 산점도), pair(산점도 매트릭스)
이산변수 시각화
이산변수 : 정수 단위로 나누어 측정할 수 있는 변수 막대차트, 점 차트, 원 차트 이용
(1) 막대 차트 시각화
barplot()함수를 이용하여 세로 막대 차트와 가로 막대 차트 그리기
ylim: y축 값의 범위
col: 각 막대를 나타낼 색상 지정
main: 차트의 제목
col 인수의 기본값은 lightgray 색상이다.
RGB색상( ex #FF0000) 등으로 지정 가능
세로막대차트
# 세로 막대 차트 그리기
#1 차트 작성을 위한 자료 만들기
chart_data <- c(305,450,320,460,330,480,380,520) names(chart_data) <- c("2019 1분기", "2020 1분기", "2019 2분기", "2020 2분기", "2019 3분기", "2020 3분기", "2019 4분기", "2020 4분기") |
#2 세로 막대 차트 그리기
barplot(chart_data, ylim = c(0,600), col = rainbow(8), main = "2019년도 vs 2020년도 매출 현황 비교") ![]() |
ylim: y축 값의 범위
# 막대 차트의 가로축과 세로축에 레이블 추가하기
barplot(chart_data, ylim = c(0, 600), ylab = "매출액(단위: 만원)", xlab = "년도별 분기 현황", col = rainbow(8), main= "2018년도 vs 2019년도 매출현황 비교") ![]() |
y축 : ylab, x축 : xlab
가로 막대 차트
barplot()함수에 horiz속성을 TRUE로 지정
# 가로 막대 그리기
barplot(chart_data, xlim = c(0, 600),horiz = T, ylab = "매출액(단위: 만원)", xlab = "년도별 분기 현황", col = rainbow(8), main= "2019년도 vs 2020년도 매출현황 비교") ![]() |
horiz = TRUE : 가로 막대로 바뀐다
xlim : x축 값의 범위
# 막대 차트에서 막대 사이의 간격 조정하기
barplot(chart_data, xlim = c(0, 600), horiz = T, ylab = "매출액(단위: 만원)", xlab = "년도별 분기 현황", col = rainbow(8), space = 1, cex.names =1, main = "2019년도 vs 2020년도 매출현항 비교") ![]() barplot(chart_data, xlim = c(0, 600), horiz = T, ylab = "매출액(단위: 만원)", xlab = "년도별 분기 현황", col = rainbow(8), space = 0.5, cex.names =1.5, main = "2019년도 vs 2020년도 매출현항 비교") ![]() |
- space속성: 막대의 굵기와 간격 지정
space속성값이 클수록 막대의 굵기는 작아지고, 막대와 막대 사이의 간격은 넓어진다.
- cex.names속성: 축 이름의 크기 지정
위아래 비교 : # space 값 줄이니 간격이 좁아지고, cex.names 키우니 축 글씨가 커졌다
# 막대 차트에서 막대의 색상 지정
barplot(chart_data, xlim = c(0, 600), horiz = T, ylab = "매출액(단위: 만원)", xlab = "년도별 분기 현황", space = 0.5, cex.names =1, main = "2019년도 vs 2020년도 매출현항 비교", col = rep(c(3,4),4)) ![]() |
col = rainbow(8)-> col=rep(c(3,4), 4) : 3번(green)과 4번(blue) 색상 사용, 4번 반복
col 속성: 색상설정
1 black
2 red
3 green
4 blue
5 skyblue
6 purple
7 yellow
# 막대 차트에서 색상 이름을 사용하여 막대의 색상 지정하기
barplot(chart_data, xlim = c(0, 600), horiz = T, ylab = "매출액(단위: 만원)", xlab = "년도별 분기 현황", space = 1, cex.names = 0.8, main = "2019년도 vs 2020년도 매출현항 비교", col = rep(c("red", "green"), 4)) ![]() |
col = rep(c("red", "green"), 4)) : 색상값이 아닌 색상의 이름 사용
누적 막대 차트
하나의 컬럼에 여러 개의 자료를 가지고 있는 경우 자료를 개별적인 막대로 표현 또는 누적형태로 표현
# 누적 막대 차트 그리기
#1 메모리에 데이터 가져와서 구조보기
data("VADeaths") VADeaths # Rural Male Rural Female Urban Male Urban Female # 50-54 11.7 8.7 15.4 8.4 # 55-59 18.1 11.7 24.3 13.6 # 60-64 26.9 20.3 37.0 19.3 # 65-69 41.0 30.9 54.6 35.1 # 70-74 66.0 54.3 71.1 50.0 str(VADeaths) # num [1:5, 1:4] 11.7 18.1 26.9 41 66 8.7 11.7 20.3 30.9 54.3 ... # - attr(*, "dimnames")=List of 2 # ..$ : chr [1:5] "50-54" "55-59" "60-64" "65-69" ... # ..$ : chr [1:4] "Rural Male" "Rural Female" "Urban Male" "Urban Female" class(VADeaths) # "matrix" mode(VADeaths) # "numeric" |
font.main: 제목 글꼴 지정
title(): 차트 제목, 차트 글꼴 지정
#3 개별 차트와 누적 차트 그리기
par(mfrow = c(1,2)) barplot(VADeaths, beside = T, col=rainbow(5), main = "버지니아주 하위계층 사망비율") ![]() legend(19,71,c("50-54","55-59","60-64","65-69","70-74"), cex=0.8, fill=rainbow(5)) ![]() |
barplot(VADeaths, beside = F, col = rainbow(5)) title(main = "버지니아주 하위계층 사망비율", font.main = 4) legend(3.8, 200, c("50-54", "55-59", "60-64", "65-69", "70-74"), cex = 0.8, fill = rainbow(5)) ![]() |
par(mfrow = c(1,2)) barplot(VADeaths, beside = T, col=rainbow(5), main = "버지니아주 하위계층 사망비율") legend(19,71,c("50-54","55-59","60-64","65-69","70-74"), cex=0.8, fill=rainbow(5)) barplot(VADeaths, beside = F, col = rainbow(5)) title(main = "버지니아주 하위계층 사망비율", font.main = 4) legend(3.8, 200, c("50-54", "55-59", "60-64", "65-69", "70-74"), cex = 0.8, fill = rainbow(5)) ![]() |
- par()함수: RStudio의 차트가 나타나는 영역에서 두 개 이상의 차트를 동시에 볼 수 있게 함.
- beside = T/F: X축 값을 측면으로 배열, F인 경우 하나의 막대에 누적 , ‘beside= T’ 속성: 하나의 막대에 누적
- 차트에 제목 넣기: main 속성을 이용 또는 title()함수 이용
- legend(): 범례의 위치, 이름, 글자 크기, 색상 지정
- font.main속성: 차트 제목의 글꼴 유형 지정
- title(): 차트 제목, 차트 글꼴 지정
mfrow : c(행 수, 열 수)을 입력
cf ) mfrow와 mfcol의 차이는 작은 그래프들이 배치되는 순서를 다르게 한다
# mfrow : 가로방향 기준으로 순차적으로 그려짐
# mfcol : 세로방향 기준으로 순차적으로 그려짐
(2) 점 차트 시각화
dotchart()함수
x: 데이터
label / labels : 점에 대한 레이블 표시 , y축 레이블
cex(character expansion): 레이블과 점의 크기 확대
color / col : 레이블과 점의 색
lcolor: 선의 색
main: 차트 제목
xlab: x축의 이름
pch(plotting character): 점 모양
# 점 차트 사용하기
par(mfrow = c(1,1)) dotchart(chart_data,color = c("blue","red"), lcolor = "black", pch = 1:2, # 선의색 labels = names(chart_data), # y축 레이블 xlab = "매출액", main = "분기별 판매현황 : 점차트 시각화", cex = 1.2) # 점의 확대 ![]() |
(2) 원형 차트 시각화
pie() 함수
x: 데이터
labels: 원형 차트에서 각 조각에 대한 설명문
col: 색상
border: 테두리 색
lty: 선 타입
main: 차트 제목을 지정
# 분기별 매출현황을 파이 차트로 시각화하기
par(mfrow = c(1, 1)) pie(chart_data, labels = names(chart_data), col = rainbow(8), cex = 1.2) title("2019~2020년도 분기별 매출현황") ![]() |
par(mfrow = c(1, 1)) pie(chart_data, labels = names(chart_data), col = rainbow(8), cex = 1.2,clockwise = TRUE) title("2019~2020년도 분기별 매출현황") ![]() |
par(mfrow = c(1, 1)) pie(chart_data, labels = names(chart_data), col = rainbow(8), cex = 1.2,clockwise = FALSE) title("2019~2020년도 분기별 매출현황") ![]() |
clockwise = TRUE: 시계방향으로 데이터 표시.
Default는 FALSE
clockwise =FALSE : 시계반대방향으로 데이터 표시
'Programming > R' 카테고리의 다른 글
[ R ] 데이터 시각화 #2 연속변수 시각화 (2) (1) | 2022.12.22 |
---|---|
[ R ] 데이터 시각화 #2 연속변수 시각화 (1) (0) | 2022.12.22 |
[ R ] EDA 표본추출 (0) | 2022.11.21 |
[ R ] EDA - 파생변수 (0) | 2022.11.21 |
[ R ]EDA 코딩변경 (0) | 2022.11.21 |