빅데이터/R

[R] 이산변수 시각화

kerpect 2020. 7. 1. 22:13
728x90
반응형
SMALL

이산변수란?

 - > 정수단위로 나누어 측정할 수 있는 변수를 이야기 합니다. - 연속적이지 않은 변수 

     (예시, 돈 - 1원은 있지만 1.5원은 없음) 

 

 

1) 막대차트 함수 - barplot() 형식 - barplot() 

(1) 세로 막대차트 

 

- 막대 차트 데이터 생성 및 세로 막대 차트 생성

chart_data <- c(305, 450, 320, 460, 330, 480, 380, 520) # 1차원 배열 
names(chart_data) <- c("2019 1분기", "2020 1분기", "2019 2분기", "2020 2분기", "2019 3분기", 
                       "2020 3분기", "2019 4분기", "2020 4분기")

str(chart_data) # chat_data dataset의 특징을 출력해줍니다. 
chart_data

- 출력값 - 
2019 1분기 2020 1분기 2019 2분기 2020 2분기 2019 3분기 2020 3분기 2019 4분기 2020 4분기 
  305        450        320        460        330        480       380        520 
  
 
 barplot(chart_data , ylim = c(0,600), col = rainbow(8),  
         xlab ="년도별 분기현황", ylab = "매출액(단위:만원)", 
         main = "2019년도 vs 2020년도 분기면 매출 현황 비교") 

 

barplot : 막대 그래프로 시각화 해주는 함수

 

ylim : y축 값의 범위 / 지정하지 않으면 default값으로 함수에서 잡아주는데 직관력이 떨어지는 경우가 많습니ㅏ다. 
       일정 크기를 넣어주면 그 값에 맞춰서 보기 좋게 조정하여 출력해줍니다. 

 

col : color 의 약자로 색을 넣어주는 함수 / rainbow(n) , n의 수만큼 서로 다른 색으로 출력합니다.

 

main : 타이틀을 넣어주는 매개변수]

 

xlab = x축 이름 

 

ylab = y축 이름

 

 

 

 

(2) 가로 막대 차트

horiz : default = F(세로 막대 차트 출력) , T (가로 막대 차트 출력)

barplot(chart_data, xlim = c(0,600) , xlab = "매출액(단위:만원)", ylab = "년도별 분기현황", 
                   col = rainbow(8), main = "2019년도 vs 2020년도 분기면 매출 현황 비교",
                   horiz = T, space = 1.5, cex.names = 0.8)

- 매개변수의 이름과 함께 데이터를 입력하게 되면 순서는 상관없습니다.

 

space : 막대 그래프 사이의 간격을 정의하는 매개변수 

 

cex.naems : 텍스트의 크기를 바꿀 수 있는 매겨변수, default 값 = 1 / 0.8 입렵하면 80% 크기로 출력

추가 속성

1) red 와 blue 색상 4회반복 

barplot(chart_data, xlim = c(0,600), xlab = "매출액(단위:만원)", ylab = "년도별 분기현황", 
                   main = "2019년도 vs 2020년도 분기면 매출 현황 비교", horiz = T, 
                   space = 1.5, cex.names = 0.8, col=rep(c(2,4),4))

rep : 색상 반복 /  rep(c(2(빨강)-2019년 색상, 4(파랑)-2020년 색상), 4(반복))

- rep(c(n, n), n(반복)) : 검은색 (1), 빨간색(2), 초록색(3), 파란색(4), 하늘색(5), 자주색(6), 노란색(7)

 

 

2) 원하는 색상을 키워드를 이용해서 직접 넣기

 

barplot(chart_data, xlim = c(0,600), xlab = "매출액(단위:만원)", ylab = "년도별 분기현황", 
                    main = "2019년도 vs 2020년도 분기면 매출 현황 비교", horiz = T, space = 1.5, 
                    cex.names = 0.8, col=rep(c("green","yellow"),4))

col : rep(c("color_name","color_name"),반복수))

 

 

 

 

(3) 개별 차트 와 누적 차트 그리기

 

VADeaths 함수를 활용하여 누적 막대 차트에 대해서 알보겠습니다.

 

< VADeaths >
R에서 기본으로 제공되는 데이터 셋으로 1940 년 미국 버지니아주의 하위계층 사망비율을 기록한 데이터 셋이다 전체

5 행 4 열의 numeric 자료형의 matrix 자료구조를 갖고 있습니다.

 

변수구성

- Rural Male( 시골출신 남자) Urban Male( 도시출신 남자)
- RuralFemale( 시골출신 여자) Urban Female( 도시출신 여자)

           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

 

par(mfrow=c(1,2)) # 1행 2열 그래프 보기 (개별차트 + 누적 차트)

 - 누적 차트 - 1컬럼 - 5 데이터 / 나이 별로 누적되어 각 컬럼별 특징을 시각화
barplot(VADeaths, col=rainbow(5), main = "미국 버지니아주 하위계층 사망 비율")
legend(0, 200, c("50-54","55-59","60-64","65-69","70-74"), cex = 0.8 , fill = rainbow(5))  

 - 개별 차트 -  
barplot(VADeaths, col=rainbow(5), main = "미국 버지니아주 하위계층 사망 비율", beside = T)
legend(0, 71, c("50-54","55-59","60-64","65-69","70-74"), cex = 0.8 , fill = rainbow(5))

legend : (x, y, 수식) - 범례 작성

 

beside : default = F / 행의 값을 하의 막대에 넣어줍니다 , T : 각행의 데이터를 하나의 막대 그래프로 구별하여 출려해줍니다.

 

 

 

2) 점 차트 시각화 - dotchart()

chart_data

- 출력값 - 
2019 1분기 2020 1분기   2019 2분기   2020 2분기   2019 3분기   2020 3분기   2019 4분기   2020 4분기 
305          450          320          460          330          480          380          520 

dotchart(chart_data, color = c("blue", "red"), xlab = "매출액(단위:만원)" , 
                     cex = 1.2, main="분기별 판매현환 점 차트 시각화화" , 
                     labels=names(chart_data), lcolor="purple", pch = 2:1) 

 

color = c("blue"-2019년, "red"-2020년) 색상 넣기 

 

xlab = x축 이름 

 

cex = 레이블과 점의 크기 확대

 

main = title

 

labels = 기존에 데이터가 가지고 있는 컬럼의 이름을 반환하여 labels에 담아줍니다(y축).

 

names(chart_data) <- c(내용) : 컬럼 이름 넣기

 

lcolor : 줄의 색상 지정

 

pch(plotting character) : (n:n) : 원(○) - (1) , 삼각형(△) -(2), 십자가 모양 (+) - (3) , 출력되는 기호 지정

 

cex(character expansion) : 레이블과 점의 크기 확대

 

 

 

 

3) 원형 차트 시각화 - pie()

chart_data

- 출력값 - 
2019 1분기 2020 1분기   2019 2분기   2020 2분기   2019 3분기   2020 3분기   2019 4분기   2020 4분기 
305          450          320          460          330          480          380          520 

pie(chart_data , labels = names(chart_data), border = 'blue', col=rainbow(8), cex=1.2) 
title("2019~2020년도 분기별 매출 현황")

 

 

 

 

 

 

 

 

 

# lcolor : 줄의 색상 지정
# pch(plotting character) : (n:n) : 원(○) - (1) , 삼각형(△) -(2), 십자가 모양 (+) - (3) , 출력되는 기호 지정
# cex(character expansion) : 레이블과 점의 크기 확대

 

 

728x90
반응형
LIST