[R] 데이터 시각화
programming/r

[R] 데이터 시각화

5. 데이터 시각화

 

5.1 그래프 작성 입문

plot(y축 데이터, 옵션)

 

plot(y축 데이터, y축 데이터)

 

plot(x축 데이터, y축 데이터, 옵션)

 

그래프의 제목 지정

 

 

5.2 그래프 옵션

Symbols and colors in R - PCH argument . (2016). Retrieved from http://coleoguy.blogspot.com/2016/06/symbols-and-colors-in-r-pch-argument.html.

# 0.0~1.0 사이의 난수 100개를 발생시킴
x <- runif(100)
y <- runif(100)

# y의 값이 0.5보다 크면 1, 아니면 18
plot(x, y, pch = ifelse(y > 0.5, 1, 18))

 

5.2.1 그래프 종류

type = "p"

점 모양 그래프 (기본값)

type = "l"

선 모양 그래프 (꺾은선 그래프)

type = "b"

점과 선 모양 그래프

type = "c"

"b"에서 점을 생략한 모양

type = "o"

점과 선을 중첩해서 그린 그래프

type = "h"

각 점에서 x축 까지의 수직선 그래프

type = "s"

왼쪽값을 기초로 계단모양으로 연결한 그래프

type="S"

오른쪽 값을 기초로 계단모양으로 연결한 그래프

type = "n"

축 만 그리고 그래프는 그리지 않음

 

5.2.2 선 종류(Line TYpe)

lty = 0, lty = "blank"

투명선

lty = 1, lty = "solid"

실선

lty = 2, lty = "dashed"

대쉬선

lty = 3, lty = "dotted"

점선

lty = 4, lty = "dotdash"

점선과 대쉬선

lty = 5, lty = "longdash"

긴 대쉬선

lty = 6, lty = "twodash"

2개의 대쉬선

 

 

5.3 그래프의 종류

5.3.1 산포도(산점도)

산포도란? 대표값을 중심으로 자료들이 흩어져 있는 정도

두 데이터 간의 상관관계 유무를 xy 평면상에 시각적으로 나타내는 그림

 

plot(x축 자료, y축 자료, main=제목, sub=부제목, xlab=x축 제목, ylab=y축 제목, type=그래프 종류, axes=테두리, col=색상, pch=점의 모양)

 

axes=F 테두리 없음, axes=T 테두리 표시 / ann=F x, y축 제목 없음, ann=T x, y축 제목 표시

# axes = F: 테두리 없음, axes = T: 테두리 표시
# ann = F: x, y축 제목 없음, ann = T: x, y축 제목 표시
abc <- c(260, 300, 250, 280, 310)
def <- c(180, 200, 210, 190, 170)
ghi <- c(210, 250, 260, 210, 270)
plot(abc, type = "o", col = "red", ylim = c(0, 400), axes = F, ann = F)

 

5.3.2 막대 그래프

x <- c(1, 2, 3, 4, 5, 6)
x                               # 데이터의 모양 확인
barplot(x, names = "매출")      # 가장 기본적인 막대그래프의 생성

 

# 복잡한 형태의 막대그래프를 그리기 위한 데이터의 설정
xx <- matrix(c(1, 2, 3, 4, 5, 6), 3, 2)     # 3행 2열의 행렬
xx                                          # 데이터의 모양 확인

# 1개의 행이 1개의 막대그래프로 그려짐
barplot(xx)

 

# 시즌별(= A, B, C, D, E) BaseBall 판매현황
# density: 빗금의 밀도
abc <- c(110, 300, 150, 280, 310)
barplot(
  abc,
  main = "Base Ball 판매량",
  xlab = "Season",
  ylab = "판매량",
  names.arg = c("A", "B", "C", "D", "E"),
  border = "blue",
  density = c(10, 30, 50, 30, 10)
)

 

abc <- c(110, 300, 150, 280, 310)   # 시즌별(= A, B, C, D, E) BaseBall 판매현황
def <- c(180, 200, 210, 190, 170)   # 시즌별 SoccerBall 판매현황
ghi <- c(210, 150, 260, 210, 70)    # 시즌별 BeachBall 판매현황

B_Type2 <- matrix(c(abc, def, ghi), 5, 3)
B_Type2
barplot(
  B_Type2,
  main = "Ball Type 별 시즌의 판매량",
  xlab = "Ball Type",
  ylab = "매출",
  beside = T,
  names.arg = c("BaseBall", "SoccerBall", "BeachBall"),
  border = "blue",
  col = rainbow(5),
  ylim = (c(0, 400))
)

# legend(x 좌표, y 좌표, 범례 내용, 범례 내용 색상, 테두리 색상, ...)
# x 좌표는 막대 1개가 1로 계산됨
# R에서의 좌표값은 컴퓨터 그래픽스와 달리 그래프의 원점(좌측 하단)이 기준임
# cex 1.0을 기준으로 팔레트 사이즈와의 상대적인 사이즈
legend(16, 400, c("BaseBall", "SoccerBall", "BeachBall"), cex = 0.8, fill = rainbow(5))

 

5.3.3 파이차트

 

5.3.4 상자수염 그래프

 

5.3.5 기타 그래프

5.3.5.1 꽃잎 그래프(sun flower graph)

5.3.5.2 별 그래프(stars graph)

5.3.5.3 symbols 그래프

5.3.5.4 산점도 행렬(pairs)

5.3.5.5 3차원 그래프

 

5.3.6 산점도 매트릭스