R 데이터 시각화 2편
데이터 다운로드 링크: https://www.kaggle.com/liujiaqi/hr-comma-sepcsv
# 시각화 이전에 처리 되어 있어야 하는 시각화
DATA = read.csv('C:/R/HR_comma_sep.csv')
DATA$left = as.factor(DATA$left)
DATA$Work_accident = as.factor(DATA$Work_accident)
DATA$promotion_last_5years = as.factor(DATA$promotion_last_5years)
히스토그램(Histogram) [연속형 변수 하나를 집계 내는 그래프, 1차원]
히스토그램은 연속형변수를 일정 범위로 구간을 만들어, x축으로 설정하고 y축은 집계된 값(Counting)을 나타내는 그래프입니다.
밀도그래프(Density Plot)[연속형 변수 하나를 집계 내는 그래프, 1차원]
밀도그래프는 연속형변수를 일정 범위로 구간을 만들어, x축으로 설정하고 y축은 집계된 값(percentage)을 나타내는 그래프입니다.
박스플롯(Boxplot) [이산형 변수에 따라 연속형 변수의 분포 차이를 표현해주는 2차원 그래프]
박스플롯은 이산형 변수와 연속형 변수를 한번에 표현하기 위한 그래프입니다. 데이터 탐색과정(EDA) 에서 매우 중요하게 쓰이는 플롯 중 하나이니, 꼭 기억해두시길 바랍니다.
산점도(Scatter Plot)[두 연속형 변수의 상관관계를 표현해주는 2차원 그래프]
산점도는 분석에서 가장 활발히 쓰이는 그래프 중 하나입니다. 특히 산점도의 경우, 모델링 전에 변수들 간의 관계를 파악하는데 있어, 가장 효과적입니다.
library(ggplot2)
# 기본
ggplot(DATA,aes(x=satisfaction_level))+
geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
# 구간 수정 및 색 입히기
ggplot(DATA,aes(x=satisfaction_level))+
geom_histogram(binwidth = 0.01,col='red',fill='royalblue') # col은 테두리, fill은 채우기
# 기본
ggplot(DATA,aes(x=satisfaction_level))+
geom_density()
# 색 입히기
ggplot(DATA,aes(x=satisfaction_level))+
geom_density(col='red',fill='royalblue') # col은 테두리, fill은 채우기박스플롯(Boxplot) [이산형 변수에 따라 연속형 변수의 분포 차이를 표현해주는 2차원 그래프]
# 기본
ggplot(DATA,aes(x=left,y=satisfaction_level)) +
geom_boxplot(aes(fill = left)) +
xlab("이직여부") + ylab("만족도") + ggtitle("Boxplot") +
labs(fill = "이직 여부")
# 기본에서 조금 더 추가
ggplot(DATA,aes(x=left,y=satisfaction_level)) +
geom_boxplot(aes(fill = left),alpha = I(0.4)) + # alpha는 색 명도 조절, 0 ~ 1 사이 값 입력
geom_jitter(aes(col = left),alpha = I(0.4)) +
xlab("이직여부") + ylab("만족도") + ggtitle("Boxplot") +
labs(fill = "이직 여부", col = "이직 여부")
# 기본에서 조금 더 추가에서 조금 변경
ggplot(DATA,aes(x=left,y=satisfaction_level)) +
geom_boxplot(aes(fill = salary),alpha = I(0.4),outlier.colour = 'red') +
xlab("이직여부") + ylab("만족도") + ggtitle("Boxplot") +
labs(fill = "임금 수준")
# 기본
ggplot(DATA,aes(x=average_montly_hours,y=satisfaction_level))+
geom_point()
# 간단한 색칠로 인사이트 발굴하기
ggplot(DATA,aes(x=average_montly_hours,y=satisfaction_level))+
geom_point(aes(col = left)) +
labs(col = '이직 여부') + xlab("평균 근무시간") + ylab("만족도")
자주 쓰이는 그래프들은 다루어보았습니다. 다른 그래프들은 직접 데이터들을 핸들링하며 다뤄보도록 하겠습니다.