R: 3차원 산점도 그리기

3차원 산점도(scatter plot)을 그릴 수 있는 함수들은 base 패키지의 persp(), lattice 패키지의 cloud(), 그리고 rgl 패키지의 plot3d() 등 매우 다양하다. 이중 가장 강력한 성능을 가진 plot3d()에 대해 알아보자.

rgl 패키지는 R에서 OpenGL 기능을 쓸 수 있게 해주는 패키지다. OpenGL은 고성능 3차원 그래픽을 위한 기능으로서 게임 등에 많이 사용한다. 비슷한 것으로 DirectX가 있다.

plot3d()는 OpenGL의 기능을 이용해서 3차원 산점도를 마우스로 돌려가며 다양한 각도에서 볼 수 있도록 해준다. persp()나 cloud()는 볼 각도를 수동으로 입력해야하는 불편함이 있다.

설치

install.packages("rgl")

패키지 불러오기

library(rgl)

산점도 그리기

글의 시작에 있는 그래프는 아래와 같은 방법으로 그렸다.

> x <- sort(rnorm(1000))
>  y <- rnorm(1000)
>  z <- rnorm(1000) + atan2(x,y)
>  plot3d(x, y, z, col=rainbow(1000), size=2)

마우스를 왼쪽 버튼을 클릭한 상태에서 움직이면 회전, 오른쪽 버튼을 클릭한 상태에서 움직이면 확대/축소가 된다.

저장

rgl로 그린 그래프는 rgl.snapshot()함수를 이용해서 저장한다. rgl.snapshot()은 화면에서 그래프가 그려진 부분을 캡쳐하는 방식이기 때문에 그래프가 명령창이나 또다른 창에 가려있으면 안된다.

rgl.snapshot("test.png")

test.png가 들어갈 자리에 원하는 파일 이름을 쓰면 된다. 단, jpg나 gif로는 저장할 수 없고 png만 가능하다.

아래 그래프는 글의 서두에 있는 그래프를 회전시켜 다시 캡쳐한 것이다.


Comments

와 멋진데요

좋은 정보 감사합니다.
회사에서 무작정 그리라 하는데 이런 좋은 툴이 있어서 목에 힘좀 줄 수 있겠네요.

좋은 정보감사합니다^^

필요했던 부분인데 정리가 잘 되어 있네요.
감사합니다~^^

좋은 글 보고 갑니다.

좋은 글 보고 갑니다. 산점도 링크 글 가져가겠습니다.
http://blog.naver.com/panda721