20. 데이터의 시각화 2


r

Overview

R에서 데이터를 그래프로 시각화 하는 방법에 대해 알아본다.

예제 파일 : 2013_seoul_hospital.csv


plot 실습 1

par(family = 'D2Coding')

traffic <- read.csv('R_data/191015/교통 사고 데이터.csv')
traffic
str(traffic)
colnames(traffic)
summary(traffic)

unique(traffic$사고유형_대분류)
circle <- table(traffic$사고유형_대분류)
circle
mode(circle)
class(circle)

getPercent <- function(x) {
  res <- round(x/sum(x) * 100, 2)
  return (res)
}

# pie 그래프에는 벡터 값이 들어간다.
pie(circle)

# 시작 각도
pie(circle, init.angle = 90)

# 반지름
pie(circle, radius = 0.7)

# 시계 방향
pie(circle, clockwise = T)

# 값 넣기
mlabel <- paste(names(circle), '\n', circle)
mlabel
pie(circle, labels = mlabel)

# percentage
mlabel2 <- paste(names(circle), '\n', getPercent(circle), '%')
pie(circle, labels = mlabel2)

# 3dim pie graph
# install.packages('plotrix')
library(plotrix)

pie3D(circle, labels = mlabel2, explode = 0.15)

# 도로형태-대분류로 파이그래프 그려보기
roadType <- table(traffic$도로형태_대분류)
mlabel3 <- paste(names(roadType), '\n', getPercent(roadType), '%')
pie(roadType, labels = mlabel3)


plot 실습 2

par(family = 'D2Coding')
std <- read.csv('R_data/191015/students_height.csv')
std
traffic <- read.csv('R_data/191015/교통 사고 데이터.csv')
traffic

h <- std$
num <- std$번호
range(h)

histinfo <- hist(h)
histinfo <- hist(h, freq = T)
histinfo

# density의 합 // 확률 밀도의 총 합
totalsum <- sum(histinfo$density)
totalsum

# 계급 * 확률 밀도의 총합 
all_prop <- sum(totalsum * 5)
all_prop

histinfo <- hist(h, breaks = 10)
histinfo <- hist(h, breaks = 20)

custom_brk <- seq(150, 190, 5)
custom_brk

histinfo <- hist(h, breaks = custom_brk)

histinfo <- hist(h, breaks = 10, main = '학생들의 키', col = rainbow(50), xlab = 'Height', ylab = 'Frequency', xlim = c(155, 190))

# 경상자 수로 히스토그램 생성
vict <- table(traffic$경상자수)
vict

victinfo <- hist(vict)



plot 실습 3

par(family = 'D2Coding')
mcolor <- rainbow(10)

data <- read.csv('../../../R_data/191015/2000-2013년 연령별실업율_연령별평균_세로.csv', header = T)
data
str(data)
dim(data)
head(data)

# 20대 데이터 가져오기
age20 <- data[,2]
age20

plot(age20, xlab = '', ylab = '', main = '연령별 실업율 현황', col = 'violet', type = 'o', lwd = 2, axe = F, ylim = c(0, 11))

len <- c(3:6)

# 모든 연령대의 데이터 가져오기
for(idx in len) {
  age <- data[, idx]
  # 추가적인 그래프를 그릴때 사용 
  lines(age, col = mcolor[idx - 2], type = 'o', lwd = 2)
}

srow <- nrow(data)
srow

colname <- data$연도
colname

axis(side = 1, at = 1:srow, label = colname, las = 2)
axis(side = 2, las = 1)

# Guide line
abline(h = seq(0, 10, 0.5), v = seq(1, srow, 1), lty = 2, lwd = 0.5)

column_name <- colnames(data[2:6])

# gsub함수로 replace all 가능
column_name <- gsub('X', '', column_name)
column_name

colors <- c('violet', mcolor)
legend('topright', column_name, cex = 0.7, col = colors, lty = 1, lwd = 2, bg = 'white')






© 2019. by RaP0d

Powered by aiden