R언어 | Part_2 차근차근 그래픽 예제 뜯어보기 1
본문 바로가기

IT/R

R언어 | Part_2 차근차근 그래픽 예제 뜯어보기 1





R Language

그래픽 예제 뜯어보기










지난 포스팅에 이어





인공지능


빅데이터


머신러닝


딥러닝


4차 산업혁명




꼬리표를 달고


R언어 포스팅을 시작하겠습니다.







아무리 수백만개의 정확하고 유용한 데이터가 있다 한들


이를 우측에 보이는 것처럼 


시각적으로 보기 쉽게 나타내지 않는다면


아래와 같이 보기 힘든 데이터들은 


그냥 한낱 글자에 불과할 겁니다.










만약 R을 설치하지 않으셨다면,


이전 포스팅을 보시고 


설치를 하시길 바랍니다.









* 들어가기에 앞서 R에서는 


  많은 샘플 데이터들을 들고 있습니다.

 

  data(package = .packages(all.available = TRUE))


  위 코드를 실행 하시면


  




  



  위와같이 뜰텐데, 


  여기서 aids를 사용하고 싶으시다면


  require(boot)를 하셔서


  위의 boot package를 추가하시고,


  head(aids) 혹은 (위의 6개 데이터만을 출력)


  {aids}를 실행하시면 (전체 데이터 출력)


  아래와 같은 해당 데이터 리스트들이 출력됩니다.












이제 차근차근


R 에서 제공해주는 소스를 가지고 


데이터를 어떻게 시각적으로 활용하는지 


graphics demo를 활용하여 


같이 공부해봅시다 !










먼저 아래 그림과 같이 


demo(graphics)를 입력해 주시고


return을 친 뒤


우측에 뜨는 창을 한번 클릭해 주시면 


아래와 같은 화면을 보실 수 있습니다.




왼쪽에는 소스코드가 나타나고


오른쪽에는 그 소스코드로 실행되는


graphic 화면을 보실 수 있습니다.







첫번째 예제의 전체 소스코드 입니다.



require(datasets)

require(grDevices); require(graphics)

x <- stats::rnorm(50)

opar <- par(bg = "white")

plot(x, ann = FALSE, type = "n")

abline(h = 0, col = gray(.90))

lines(x, col = "green4", lty = "dotted")

points(x, bg = "limegreen", pch = 21)

title(main = "Simple Use of Color In a Plot", xlab = "Just a Whisper of a Label", col.main = 

"blue", col.lab = gray(.8),cex.main = 1.2, cex.lab = 1.0, font.main = 4, font.lab = 3)





위의 예제를 한줄씩 한줄씩 


실행해 보신 뒤, 코드를 보시면


코드들이 눈에 들어오면서 


아~ 이렇게 만들어 지는거구나 라고 하실겁니다.









이제 소스코드를 차근차근 보겠습니다.






> require(datasets); require(grDevices); require(graphics)



- 먼저 우리가 사용할 라이브러리를 가져옵니다. 




*그 전에 먼저 설치되어 있어야 합니다 . 

 위 라이브러리들은 기본적으로 포함되어 있으므로 가져오기만 하면 됩니다.


* library(datasets)를 사용해도 됩니다.

  require과 library의 차이점은 설치되어있지 않은 라이브러리를 호출 할 경우

  library를 오류를 발생하고, require은 경고 메시지를 보여줍니다.






 

> x <- stats::rnorm(50)



50개의 정규분포 난수를 생성합니다.




stats는 패키지 중 하나로


통계 계산이나 난수 생성 함수가 내장되어 있습니다.


norm() 함수는 정규분포를 나타내며


rnorm(50)은 50개의 정규분포 난수를 생성합니다.


* stats::rnorm(50) 대신 rnorm(50)을 사용해도 무방합니다.








> opar <- par(bg = "white")



배경색을 하얀색으로 하여 그래프의 틀을 설정합니다.




par()에는 다양한 옵션들이 존재합니다.


배경색, 전경색, 폰트, 글자크기, 


선의 모양, 좌표 눈금의 길이 설정까지 


다양한 종류의 옵션들을 설정할 수 있습니다.






> plot(x, ann = FALSE, type = "n")



x,y축으로 이루어진 그래프를 만들수 있는 함수입니다.





뒤에 보이시는 type어떻게 그릴 것인지에 대한 옵션이며,


p -> 점


l -> 선

 

b -> 점과 선


s -> 계단모양 


n -> 좌표를 찍지 않음


등의 옵션이 존재합니다.









몇줄 안되는데 설명은 무쟈게 긴것 같네요


그리고 아직 위에 나온대로 그릴려면 한참 멀었습니다.


이제 틀만 만들었거든요








고로 이어서 진행하겠습니다.






> abline(h = 0, col = gray(.90))



직선을 그려줍니다.






a -> 각각의 절편


b -> 기울기

 

h -> 수평선일 시, y값


v -> 수직선일 시, x값


lty -> 선의 모양


lwd -> 선의 굵기


col -> 색의 색상


main -> plot의 제목 (이름)





> lines(x, col = "green4", lty = "dotted")



좌표의 점들을 이어 선을 그립니다.






* plot함수의 type = l 과 비슷합니다.


여기서도 abline과 비슷한 옵션들을 가지고 있으며


xlim, ylim ( 좌표 범위 )


xlab, ylab ( 축의 이름)


등이 추가적으로 있습니다.






> points(x, bg = "limegreen", pch = 21)



점을 찍는 함수입니다.






x, y -> 좌표값


pch -> 점의 모양


type -> n, p, l, b, c, s 등의 옵션들이 있습니다.







> title(main = "Simple Use of Color In a Plot",                  

  + xlab = "Just a Whisper of a Label",                          

  + col.main = "blue", col.lab = gray(.8),                       

  + cex.main = 1.2, cex.lab = 1.0, font.main = 4, font.lab = 3)  




제목( 이름 )을 설정해줍니다.







main -> 주 제목


sub -> 부 제목


xlab -> x축 이름


ylab -> y축 이름


col. 을 통해 색상의 설정도 가능하며


cex. 및 font.를 통해 도형의 크기 및 글자 크기 설정도 가능합니다.







되게 짧은 코드


한... 중학생이 그린것 같은 그래프완성되었습니다.










몇개의 예제를 추가적으로 한 뒤,


나중에는 훨씬 멋진 그래픽도 만들어 보도록 


열심히 공부합시다.






다음은 RGB를 이용한 그래픽 예제로 


포스팅 하겠습니다.







감사합니다.