시각화/R

▶R로만드는 데이터시각화 ::기초 - 히트맵(heatmap)

비주얼라이즈 2014. 2. 20. 00:26


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))



자 이렇게 하고나니

확실히 눈에 잘띄는 것 같습니다.


지난 포스팅에서처럼 결과물을 일러스트레이터로 이쁘게 마무리만 한다면

재미있는 콘텐츠 하나를 완성 할 수 있을 것 같습니다^^