시각화/R

▶R의 데이터시각화 패키지 :: Color Package 활용하기

비주얼라이즈 2015. 2. 27. 14:15



▶R의 데이터시각화 패키지 :: Color Package 활용하기


이번글에서는 우리가 R에서 plotting을 할 때, 색상관련기능들을 어떻게 효과적으로 활용할지에 대해서 정리해보고자 한다.
















R에서 기본적으로 제공하고있는 색상 구성표에 대하여



R에서 제공하는 기본적인 색상 구성표는 끔찍하다. 사실, 기본적으로 R이 통계프로그램이라는 점에서보면 그리 놀랄일도 아니다. 




다행히도, 최근까지 R은 다양한 plot, graph 등의 색상을 다루거나 명확하게하는 부분에 있어서 많은 개발이 이루어져왔다는 점이다. 또한, 이밖에도 R에서는 기본 색상표를 가뿐히 능가하는 다양한 외부 패키지를 불러올 수 있기때문에 적어도 우리가 색상에 관심을 갖고 있는 한, R의 기본 구성표로인해 애를 먹을일은 없다.








Colors 1, 2, and 3


R plot에 기본적인 색상을 적용하고자 할 때, "col"함수를 사용한다.

(**이외에도 많은 패키지에서 색상 관련 인자로 col을 사용한다.)

















R에서 색상관련 유틸리티를 활용하기




R에서 효과적인 작업을 이뤄내기위해서는 R에 기본적으로 내장되어있는 기능 뿐만아니라,  다양한 외부패키지들을 적절하게 활용할 수 있어야 한다. 이는 색상을 적용하는 부분에서도 마찬가지다. 





가장먼저 살펴볼 패키지는 grDevices 다.



grDevices패키지의 기능은 크게 두가지로 나눌 수 있다.


- colorRamp

- colorRampPallete


우리는 이러한 grDevices 패키지의 색상팔레트를 활용하여 하나의 화면에 새로운 메시지를 더할 수 있다. 또한 color()함수를 활용하여 R에서 plotting할때 다양한 색상을 지정해볼 수 있다.











colorRamp와 colorRampPalatte의 특징












RcolorBrewer Package


RcolorBrewer패키지는 웹상 에서 제공되는 R 튜토리얼이나 최근 나오고있는 R관련 책에서도 어렵지 않게 찾아볼 수 있을 만큼 보편적으로 사용되고있다. 




R colorBrewer의 type종류


Sequential

Diverging

Qualitative

**R colorBrewer패키지는 앞서소개한 colorRamp나 colorRampPalatte와 응용하여 사용할 수 있다.








RColorbrewer패키지를 로드한다.(설치가 안되어있으면 install.packages("RColorbrewer")명령어를 실행하여 패키지를 설치해준다.) 패키지가 로드되었다면, 코드로 패키지의 기능을 간단하게 적용해본다.







위에서 잠깐 언급했듯이, RColorBrwer와 colorRampPalette를 함께 사용해본다. 진행과정은 아래의 사진과 같다.






[사진 : RColorbrewer와 colorRampPalette를 함께 활용한 결과]












RColorbrwer패키지로 사용가능한 팔레트목록을 확인하고 싶다면 




display.brewer.all()


위 명령어를 실행하면된다. 그러면 R의 plot창에 각 팔레트의 이름과 색상구성표가 나타난다.













RColorbrewer의 사용방법.




brewer(n, "Palatte name")


위 코드에서 n은 plot에 활용하려고하는 색상 종류의 수를 의미한다. 최소값은 3이며,

최대값은 앞서 display.brewer.all()에서 확인했던 Palatte목록에서 각 Palatte의 색상 종류 수에 따라 정해진다. 

(위의 사진을 보면 RColorbrewer의 color Palatte별로 포함되어있는 색상의 수가 다르다는 것을 확인할 수 있다.)








그리고 뒤따라오는 "Palatte name"부분은 말그대로 Palatte의 이름을 넣어주면된다. 제공 팔레트목록에서 좌측편에 짧게 이름이 지어져있다. 그리고자하는 그래프에 맥락에 맞는 팔레트를 찾아 이름을 넣어주자.









RColorbrewer의 응용 :: smoothScatter 함수와 함께 적용해보기


이번에는 위에서 살펴본 색상관련 패키지의 기능을 응용해서 적용하는 예제를 살펴보려고한다.




예제실행을 위해 다른 데이터를 로드하기보다 변수 x,y에 난수1만개씩을 생성해주었다. 그다음에는 smoothScatter()함수를 너무나 심플한 코드로 적용했다.


**smoothScatter()함수는 큰 데이터에 대해서 스캐터플롯을 그리고자할 때 유용하게 활용할 수 있는 기능이다. 

결과는 함수에서도 알 수 있듯 많은 point들이 오버레이되어서나타난다. 





[사진 : smoothScatter(x,y)의 적용결과]

위 코드를 실행해보면 아마 이러한 모양의 그래프가 플로팅되는 것을 볼 수 있을 것이다. 우리는 여기서  색상값을 RColorbrewer의 다른 색상팔레트로 바꾸어 볼 것이다.