5. 데이터 시각화
5.1 그래프 작성 입문
plot(y축 데이터, 옵션)
plot(y축 데이터, y축 데이터)
plot(x축 데이터, y축 데이터, 옵션)
그래프의 제목 지정
5.2 그래프 옵션
# 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차원 그래프