59doit

[ R ] 데이터시각화 #1 이산변수 시각화 본문

Programming/R

[ R ] 데이터시각화 #1 이산변수 시각화

yul_S2 2022. 12. 22. 09:32
반응형

데이터시각화

데이터 분석의 도입부에서 전체적인 데이터 구조를 살펴보기(탐색적) 위해서 시각화 도구 사용

이산변수: 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
Comments