Practice makes perfect

[R] 연속변수(Continuous quantitative data) 시각화 본문

빅데이터/R

[R] 연속변수(Continuous quantitative data) 시각화

kerpect 2020. 7. 2. 00:06
728x90
반응형
SMALL

연속 변수란?

: 시간, 길이 등과 같은 연속성을 가진 실수 단위 변수를 의미합니다.

 

1) 상자 그래프 시각화 - boxplot()

: 요약정보를 시각화 하는데 효과적. 특히 데이터의 분포 정도와 이상치 발견을 목적으로 하는 경우 유용하게 사용

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

 

boxplot(VADeaths, range=0) # 상자그래프 시각화. 

abline(h = 37, lty = 3, col="red")점 # abline : 기준선 추가(lty = 3 : 선 (lty : linetype))

range = 0 : 최소값과 최대값 점선으로 연결하는 역할 - 주식에서 많이 사용 
                최대값과 최소값의 격차를 보여주며, 분포도를 보여줍니다.

 

 

 

2) 히스토그램 시각화

: 탐색과정에서 연속 변수에 관하여 가장 많이 사용합니다.
- 측정값의 범위(구간)를 그래프의 x축으로 놓고, 범위에 속하는 측정값의 빈도수를 y축으로 나타낸 그래프 형태.

 

 

iris 함수를 활용하여 히스토그램 에 대해서 알보겠습니다.

 

< iris >

R에서 제공되는 기본 데이터 셋으로 3 가지 꽃의 종류별로 50 개씩 전체 150개의 관측치로 구성된다. iris는 붓꽃에 관한 데이터를 5 개의 변수로 제공하며각 변수의 내용은 다음과 같다.

Sepal.Length(꽃받침 길이)

Sepal.Width(꽃받침 너비)

Petal.Length(꽃잎 길이)

Petal.Width(꽃잎 너비)

Species(꽃의 종류) : 3 가지 종류별 50 개 (전체 150 개 관측치)

 

hist(iris$Sepal.Width, xlab = "꽃받침의 너비" , col= "green", xlim = c(2.0,4.5), 
                       main="iris 꽃받침 너비 histogram") 

xlim : x축의 최소와 최대 범위 표현


의미 : 막대그래프의 2.0~2.25 너비를 가진 것들의 빈도수가 5정도 됩니다.

 

 

3) 산점도 시각화 

: 두 개 이상의 변수들 사이의 분포를 점으로 표시한 차트를 의미

 

예제 ① 

#기본 산점도 시각화 

price <- runif(10, min = 1, max = 100) -  1~100 사이 10개 난수 발생

plot(price)

runif() : 난수 발생 함수 / runif(생성개수 n개의 랜덤 난수 , 최소 , 최대 ) 최소 ~ 최대 까지에서 n개 난수 생성

 

 

예제②

# 대각선 , 텍스트 추가 

par(new=T) #  기존 그래프에서 추가적으로 차트을 넣어준다 

line_chart <- c(1:100)
line_chart

 - 출력값 -
[1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  
15  16  17 18  19  20  21  22  23  24  25  26  27  28  29  30
[31]  31  32  33  34  35  36  37  38  39  40  41  42  43  44  
45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60
[61]  61  62  63  64  65  66  67  68  69  70  71  72  73  74 
75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
[91]  91  92  93  94  95  96  97  98  99 100

plot(line_chart, type = "l", col = "red", axes = F, ann = F) # 대각선 출력 


# 텍스트 추가 
text(70,80,"대각선 추가",col = "blue" )

par - plot 안에서 시각화의 개수를 제공해주는 함수 

 

type = "l" : 실선을 넣어줍니다. 

 

axes : 축의 대한 매개변수 


ann : T,F의 값을가진다

 

text(x축,y축,"내용") + col = "색상"

 

 

+ 추가 기능 

① type 속성 그리기 

par(mfrow=c(2,2)) # 2행 2열 차트 / 4개의 이미지를 한번에 볼 수 있도록 셋팅

plot(price, type = "l") - 유형 : 실선
plot(price, type = "o") - 유형 : 원형과 실선(원형통과)
plot(price, type = "h") - 유형 : 직선 
plot(price, type = "s") - 유형 : 꺾은선 

 

 

② pch 속성으로 그리기

plot(price, type = "o", pch = 5) - 빈 사각형 
plot(price, type = "o", pch = 15) - 채워진 사각형
plot(price, type = "o", pch = 20) - 채워진 원형
plot(price, type = "o", pch = 20, col = "blue") - 파란 채워진 원형
plot(price, type = "o", pch = 20, col = "orange", cex = 3.0)  - 오랜지색 으로 채워진 원형(x3)
plot(price, type = "o", pch = 20, col = "orange", cex = 3.0, lwd=3) 
- lwd : line width (선의 너비)

 

 

 

4) 중첩 자료 시각화 

 

- 두 개의 벡터 객체 -
x <- c(1,2,3,4,2,4) 
y <- rep(2,6) # rep(시작과 끝 : 반복 횟수

x;y
출력값 :  [1] 1 2 3 4 2 4
출력값 :  [1] 2 2 2 2 2 2

- 교차테이블 작성 - 
table(x) -  table : 빈도수 
출력값 : 1 2 3 4 
출력갑 : 1 2 1 2 

table(y)
출력값 : 2 
출력값 : 6 

table(x,y)

 - 출력값 - 
     y
 x   2
   1 1 
   2 2
   3 1
   4 2 
 x가 1일 때, y가 2인 값 = 1, x가 2일 때, y가 2인 값 = 2 ,  
 x가 3일 때, y가 2인 값 = 1, x가 4일 때, y가 2인 값 = 2


 - 산점도 시각화 - 
plot(x,y)
x가 1,2,3,4 일 때 y는 2 - 4개의 데이터만 있는 것으로 보인다
(데이터의 개수가 시각적으로 확인하기 어렵다)

 

# 중복된 만큼 점 확대 하기 

 - 데이터 프레임 생성 -
xy.df <- as.data.frame(table(x,y))
xy.df

- 출력값 -
 x y Freq
 1 2  1
 2 2  2
 3 2  1
 4 2  2

 
 - 좌표에 중복된 수 만큼 점 확대 - 
plot(x,y,pch = 20 , col = "black", xlab =  "x 벡터 원소" , 
         ylab= "y 벡터 원소" , cex = 0.8 * xy.df$Freq) 

pch  : 출력해주는 점의 모양 변경

 

col : 색상

 

xlab : x 레이블 이름

 

ylab : y 레이블 이름

 

cex : 점의 크기 - cex = 0 * 8 = xf.df$Freq // 빈도수를 곱해서 중복되었을 때 배가 되도록 합니다. 

 

728x90
반응형
LIST

'빅데이터 > R' 카테고리의 다른 글

[R] dplyr 패키지  (2) 2020.07.03
[R] plyr 패키지  (0) 2020.07.02
[R] 이산변수 시각화  (0) 2020.07.01
[R] 주요 내장 함수  (0) 2020.07.01
[R] 사용자 정의 함수  (0) 2020.06.30