본문 바로가기

[R] 그래프 제목에 수식과 문자 함께 넣기: expression, paste

R Programming/Data Visualization by Mandarim_ 2023. 11. 9.

본 게시글은 R의 plot() 함수나 ggplot()에서 그래프의 제목(x축과 y축도 포함)에 수식을 넣는 방법에 대해 소개한다.

 

가장 대표적으로 많이 사용하는 수식에 대한 예시를 함께 보며, 수식을 어떻게 제목에 사용할지 확인한다.

수식과 글자가 함께 있는 그래프 제목을 써야 할 땐 어떻게 해야 할지도 소개한다.

 

plot()으로 그래프를 그리지만, 이는 ggplot에도 적용되는 예시이다.

 

목차는 다음과 같다.

  1. Expression()의 매우 쉬운 예제
  2. Expression() 예제 2 (단, 이 수식은 주의하자)
  3. Expression()으로 그리스 문자 사용하기
  4. Expression()과 Paste()를 사용해 수식과 글자 함께 넣기

1. Expression()의 매우 쉬운 예제

expression 함수는 수식을 R에서 표현해 주는 함수이다.

주로 사용하는 기본 수식은 모두 표현 가능하다. 

 

첫 번 째 그림은 헷갈리지 않을 쉬운 표현들을 먼저 소개한다.

  1. 수식 안에서 제곱승을 표현하고 싶다면, ^ 을 사용!
  2. 수식 안에서 괄호를 표현하고 싶다면, 그대로 () 괄호 사용!
  3. 수식 안에서 = 을 사용하고 싶다면, == 으로 사용!
    • 첫 번째 expression()에서 = 을 분명 사용했지만, 그림에 y =이나 타나지 않는 것을 확인!
# 기초 1
x <- 1:20
y <- (x-10)^2+1

par(mfrow=c(1,2))
plot(x=x, y=y)
title(expression(y=(x-10)^2+1))

plot(x=x, y=y, ylab=expression(f(x)))
title(main=expression( f(x)==(x-10)^2+1 ))

 

expression 수식 예제 1
expression()을 통해, 수식을 사용한한 기본 그래프


2. Expression() 예제 2, 단 이것은 주의하자!

  1. 분모와 분자를 표현하고 싶다면, frac(분자, 분모) 사용! -- 이는 fraction 을 의미한다.
  2. 아래 첨자를 사용하고 싶다면 _ 가 아닌 대괄호를 [ ] 사용 ! 
# 기초 2
a=10

x <- 1:20
y <- 1/(x-a)

plot(x=x, y=y)
title(expression(y=frac(1, x-a)))

plot(x=x, y=y, ylab=expression(f[a](x)))
title(main=expression( f[a](x)==frac(1, x-a) ))

 

exression 기본 예제 2
expression()으로 아래 첨자와 분수 형태 표현하기

 

반응형

3. 그리스 문자

대부분의 그리스 문자는 다음과 같이 이름 그대로 사용 가능하다.

참고로, 맨 앞 글자의 대/소문자를 구분하면 된다.

expression(list(Alpha,alpha,Beta,beta,Gamma,gamma,Delta,delta))

expression 기본 예제 3
expression으로 그리스 문자 표현하기

 


4. 글자와 수식을 함께 사용해 보자

expression (수식을 표현해 줌)과 paste (문자열을 결합)를 함께 사용하면, 수식과 문자를 함께 그림에 나타낼 수 있다.

단, 여기서 당연히 수식을 먼저 expression으로 묶은 다음에 paste()를 사용해야만 할 것 같지만, (계속 헷갈림 주의!!)

paste()를 사용하여 수식과 문자를 먼저 결합한 다음에, expression()을 사용해야 한다.

# 기초 3 (실패 사례 포함)
plot_name <- paste(expression( f[a](x)==frac(1,x-a)), 
                   " with ", 
                   expression(a==10))

plot(x=x, y=y, ylab=expression(f[a](x)))
title(main=plot_name)

plot_name <- expression(paste(f[a](x)==frac(1,x-a), 
                        " with ", 
                        a==10))

plot(x=x, y=y, ylab=expression(f[a](x)))
title(main=plot_name)

expression 기본 예제 4
expression 으로 문자와 수식 함께 표현하기. (왼쪽 망한 예시, 오른쪽 올바르게 설정된 제목)

반응형