R로 만드는 데이터시각화 :: 히트맵(heatmap)
이번 포스팅에서는 R을 이용하여 히트맵을 만드는 과정을 살펴보겠습니다.
데이터는 [제주유나이티드 선수들의 2013년 K리그 개인기록]을 사용하겠습니다.
다운로드 받으신후 R-studio의 디렉토리에 저장해주면 준비완료!
그럼 본격적으로 히트맵(heatmap)을 만들어 보도록 하겠습니다.
우선, 이전 포스팅과 마찬가지로 R-studio에 다운받은 csv파일을 불러와줍니다.
jeju <- read.csv("score.csv", sep=",", header=TRUE)
이렇게 데이터를 불러온 후 R-studio에서 데이터를 확인해보면
첫 번째 열이 선수이름이 아니라 무의미한 숫자로 되어 있는데요~
가장 첫 열을 선수이름으로 먼저 정렬을 하겠습니다.
row.names(jeju) <- jeju$name
jeju <- jeju[,2:12]
첫 번째 줄의 내용은 [첫 번째 열]을 그 행의 [행 이름]으로 쓰도록 하는 명령어입니다.
두 번째 줄은 2열부터 12열까지의 데이터를 선택해서 [jeju]변수로 되돌려보냅니다.
결과를 확인해 보겠습니다.
원하던 형태로 데이터가 바뀐 모습을 확인할 수가 있습니다^^
이 데이터를 가지고 히트맵을 바로 만들면 에러가 뜨는데요!
그 이유는 히트맵을 그리기 위해서는 데이터의 형태가 [행렬의 형태]여야 하기 때문입니다.
그러면 히트맵을 만들기 위해 행렬의 형태로 만들어야 겠지요~
방법은 아주 간단합니다.
jeju_matrix <- data.matrix(jeju)
정말 간단하지요?
이렇게 히트맵을 만들기위한 데이터정리를 모두 마쳤습니다~
히트맵을 본격적으로 만들어 보겠습니다.
jeju_heatmap <- heatmap(jeju_matrix, Rowv=NA, Colv=NA, col=cm.colors(256), scale="column", margin=c(5,10))
이렇게 2013시즌 제주유나이티드 선수들의 히트맵이 만들어졌습니다.
그런데 이렇게 보니 한 눈에 알아보기도 힘이듭니다.
확실히 수정이 필요해보입니다.
저는 R 패키지중 [RColorBrewer]를 이용하여 수정하려고 합니다.
R에 기본적으로 내장되어있지 않기때문에 간단한 명령어 입력으로 설치해줍니다.
library(RColorBrewer)
설치가 되었다면 방금 전에 만들었던 히트맵 코드에서
약간만 변경을 해줌으로써 결과물을 수정해보겠습니다.
[전]jeju_heatmap <- heatmap(jeju_matrix, Rowv=NA, Colv=NA, col=cm.colors(256), scale="column", margin=c(5,10))
[후]jeju_heatmap <- heatmap(jeju_matrix, Rowv=NA, Colv=NA, col=brewer.pal(9, "Blues"), scale="column", margin=c(5,10))
자 이렇게 하고나니
확실히 눈에 잘띄는 것 같습니다.
지난 포스팅에서처럼 결과물을 일러스트레이터로 이쁘게 마무리만 한다면
재미있는 콘텐츠 하나를 완성 할 수 있을 것 같습니다^^
'시각화 > R' 카테고리의 다른 글
▶R로만드는 데이터시각화 :: 기초 - 히스토그램(histogram) (3) | 2014.03.02 |
---|---|
▶R로만드는 데이터시각화 :: 기초 - 공간시각화 (8) | 2014.02.28 |
▶R로만드는 데이터시각화 :: 기초 - 점 그래프(point) (1) | 2014.02.17 |
▶R로만드는 데이터시각화 :: 기초 - 막대그래프 <2> (0) | 2014.02.17 |
▶R로만드는 데이터시각화 :: R, R-Studio 소개 및 설치방법 (0) | 2014.02.17 |