R에서 plot() 함수 이해하기 – 그래프 플로팅의 기초

이 튜토리얼에서는 먼저 R의 plot() 함수를 사용하여 기초를 이해하는 것부터 시작해 보겠습니다. R 언어는 아름다운 그래픽과 그래프를 구축하고 형식을 지정하는 데 필요한 다양한 함수 세트로 잘 알려져 있으며, plot() 함수 패밀리는 그러한 것들을 구축하는 데 도움을 주는 것 중 하나입니다.

R의 plot() 함수는 단일로 정의된 함수가 아니라 관련 함수의 패밀리를 위한 자리 표시자입니다. 호출되는 정확한 함수는 사용된 매개변수에 따라 달라집니다. 가장 간단하게는, plot() 함수는 단순히 두 벡터를 서로 대비하여 플롯합니다.

plot(c(1,2,3,4,5),c(1,4,9,16,25))

이것은 y = x^2에 대한 간단한 플롯을 제공합니다.

Square plot in R

R에서 plot() 함수로 그래프 외형 변경하기

R의 plot() 함수는 여러 방법으로 사용자 정의할 수 있어 복잡하고 눈길을 끄는 플롯을 만들 수 있습니다.

  1. 마커의 형태: 플롯 마커는 기본적으로 작고, 빈 원입니다. 이것들은 플롯 문자라고도 알려져 있으며, pch로 표시됩니다. plot 함수에 새로운 pch 값을 추가함으로써 이것들을 변경할 수 있습니다. Pch 값 0부터 25는 유효하며 그래프에 여러 가지 다른 기호를 제공합니다. Pch 0은 사각형, 1은 원, 3은 삼각형, 4는 십자가 등입니다.
  2. 플롯 마커의 크기: 그래프의 이 측면은 cex 매개변수를 사용하여 제어할 수 있습니다. cex 매개변수는 마커의 크기를 50% 작게 만들려면 0.5로 설정하고, 50% 크게 만들려면 1.5로 설정할 수 있습니다.
  3. 플롯 마커의 색상: 심볼에는 하나 이상의 색상을 할당할 수 있습니다. 이러한 색상은 R에서 제공하는 목록에서 선택할 수 있습니다. colors() 함수를 사용하여 선택할 수 있습니다.
  4. 점을 선으로 연결하기: 많은 경우에 표시된 점을 다양한 종류의 선으로 연결하는 것이 필요합니다. 이는 plot 함수의 type 속성을 사용하여 수행할 수 있습니다. ‘p’로 설정된 유형 속성은 점만을 나타내고, ‘l’은 선만을 나타냅니다. 비슷하게, ‘b’와 ‘o’는 점을 연결하고 점을 오버레이하는 데 사용됩니다. 히스토그램 모양의 표시를 얻으려면 ‘h’ 옵션이 사용되고 ‘s’는 단계 옵션에 사용됩니다.
  5. 선의 변형: 선 형식은 lty 매개변수(범위 0에서 6)로 지정할 수 있으며, 선의 너비는 lwd 매개변수를 사용하여 설정됩니다.

지금까지 배운 내용을 사용하여 몇 개의 그래프를 구성해 보겠습니다.

우선 사인 파형 플롯을 생성해 보겠습니다. x를 -pi에서 pi까지 0.1 간격의 값의 시퀀스 벡터로 하고, y는 x의 해당 사인 값들을 포함합니다. 이제 y를 x에 대해 플로팅해 보세요.

x=seq(-pi,pi,0.1)
y=sin(x)
plot(x,y)
Sine wave

이제 심볼과 색상을 변경해 보겠습니다.

plot(x,y,pch=c(4,5,6),col=c('red','blue','violet','green'))

우리는 이제 컴파일러가 그래프에 표시할 3가지 다른 심볼과 4가지 다른 색상을 선택하도록 허용합니다. 결과가 어떻게 되었는지 확인해 보겠습니다.

Colorful Sinewave

R also allows combining multiple graphs into a single image for our viewing convenience using the par() function. We only need to set the space before calling the plot function in our graph.

#하나의 행과 두 개의 열이 있는 플로팅 창 설정.
par(mfrow=c(1,2))
plot(x,y,type='l')
plot(x,y,pch=c(4,5,6),col=c('red','blue','violet','green'))
Combining Plots In R

A few more graphs using various options from above are illustrated below.

#2개의 행과 3개의 열에 대한 공간 설정.
par(mfrow=c(2,3))

#다양한 옵션을 사용하여 그래프 그리기.
plot(x,cos(x),col=c('blue','orange'),type='o',pch=19,lwd=2,cex=1.5)

plot(x,x*2,col='red',type='l')

plot(x,x^2/3+4.2, col='violet',type='o',lwd=2,lty=1)

plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lty=3,col='pink',lwd=4)

plot(x<-seq(1,10,0.5),50*x/(x+2),col=c('green','dark green'),type='h')

plot(x,log(x),col='orange',type='s')

결과 그래프는 이렇게 보입니다.

Multiple Plots In R

R에서 plot() 함수를 사용하여 그래프에 더 많은 정보 추가하기

차트를 설명하는 노트와 정보가 있을 때 그래프가 더 완성된 것처럼 보입니다. 이에는 차트와 축의 제목, 그래프의 범례가 포함됩니다. 때로는 데이터 포인트에 레이블을 붙이는 것이 필요할 수도 있습니다. 이제 R에서 이러한 내용을 그래프에 추가하는 방법을 살펴보겠습니다.

  1. 주요 제목은 플롯 함수에서 main 옵션을 사용하여 추가됩니다. 폰트, 색상 및 크기는 각각 font.main, col.main, cex.main을 사용하여 사용자 정의할 수 있습니다.
  2. 축에 대한 제목은 xlab 및 ylab 속성을 사용하여 제공됩니다. 이것들은 위에서와 같이 font.lab, col.lab, cex.lab을 사용하여 사용자 정의할 수 있습니다.
  3. 또한 플롯 내부에 일부 추가 텍스트를 추가할 수 있습니다. 이는 text 속성을 사용하여 사용할 텍스트와 표시할 좌표를 지정함으로써 수행할 수 있습니다.
  4. 텍스트 속성은 데이터 포인트에 레이블을 지정하는 데에도 사용될 수 있습니다. 이 경우 텍스트는 문자열이 아닌 레이블의 벡터입니다.
  5. 범례는 R의 legend() 함수를 사용하여 그래프에 추가할 수 있습니다. 범례는 좌표, 텍스트 및 해석할 기호를 입력값으로 받습니다.

이를 설명하는 예제를 살펴봅시다.

#색상을 이용한 제목 표시
plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lty=3, col='pink',lwd=4,main="This is a graph",col.main='blue')
Graph With A Title
#xlabel과 ylabel을 추가한 같은 그래프

> plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lt=3,col='pink',lwd=4,main="This is a graph",col.main='blue',xlab="Time",ylab="Performance")
Graph With Title And Labels

각 데이터 포인트에 레이블을 추가하려면 텍스트 속성을 사용하십시오.

labelset <-c('one','three','five','seven','nine','eleven')
x1<- c(1,3,5,7,9,11)
y1 <- c(2,7,5,10,8,10)
plot(x1,y1,type='o',lty=3,col='pink',lwd=4,main="This is a graph",col.main='blue',xlab="Time",ylab="Performance")
text(x1+0.5,y1,labelset,col='red')
Graph With Data Labels

마지막으로, 위의 그래프에 범례를 추가하겠습니다. legend() 함수를 사용하세요.

> legend('topleft',inset=0.05,"Performace",lty=3,col='pink',lwd=4)

위치는 x와 y 좌표 또는 ‘topleft’ 또는 ‘bottomright’와 같은 위치를 사용하여 지정할 수 있습니다. Inset은 범례 상자를 그래프의 안쪽으로 약간 이동하는 것을 의미합니다. 그 결과, 그래프에는 이제 범례가 있습니다.

Graph With Legend

그래프 겹치기

R also allows two graphs to be displayed on top of each other instead of creating a new window for every graph. This is done by calling a lines() function for the second graph rather than plot() again. These are most useful when performing comparisons of metrics or among different sets of values. Let us look at an example.

x=seq(2,10,0.1)
y1=x^2
y2=x^3
plot(x,y1,type='l',col='red')
lines(x,y2,col='green')
legend('bottomright',inset=0.05,c("Squares","Cubes"),lty=1,col=c("red","green"),title="Graph type")
Overlaid Graph With Legend

플롯에 선 추가하기

직선은 간단한 abline() 함수를 사용하여 기존 플롯에 추가될 수 있습니다. abline() 함수는 4개의 인수, a, b, h 및 v를 가져옵니다. 변수 a와 b는 기울기와 절편을 나타냅니다. H는 수평선의 y 점을 나타내고 v는 수직선의 x 점을 나타냅니다.

이를 명확히하기 위해 예제를 살펴보겠습니다. 제곱 및 세제곱에 대한 위의 그래프를 작성한 후 이 세 문장을 실행해 보세요.

abline(a=4,b=5,col='blue')
abline(h=c(4,6,8),col="dark green",lty=2)
abline(v=c(4,6,8),col="dark green",lty=2)
Graph With Lines

첫 번째 파란색 선은 지정된 기울기와 절편으로 구축됩니다. 다음 세 개의 수평선과 수직선 집합은 lty=2로 지정된 점선 스타일로 지정된 x 및 y 값에 그려집니다.

이것은 R에서 플롯 함수의 기본을 다룹니다. ggplot2와 같은 다른 패키지와 결합하면 R은 더 많은 자습서에서 볼 수 있듯이 가장 표현력 있고 동적인 그래픽을 생성합니다.

Source:
https://www.digitalocean.com/community/tutorials/plot-function-in-r