20. 데이터의 시각화 2
in Study on R Programming
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')