본문 바로가기
공부 목록/IT & 프로그래밍

[Python] LaTeX 문자 이용하여 그래프에 수식 나타내기

by 독학박사 2023. 8. 15.

목차


     파이썬으로 그래프를 가시화할 때 필요한 수식과 같은 정보를 같이 넣을 필요가 있습니다. 파이썬에서는 LaTeX 문자식이 적용이 가능하기 때문에 이를 이용하여 그래프에 수식 정보를 넣을 수가 있습니다. LaTeX 문자식의 표현 방법부터 실제 그래프에 넣는 예제 코드까지 알아보도록 하겠습니다.

     

    파이썬 그래프에 수식 적용
    파이썬 그래프에 수식 적용

     

    1. 그래프에 수식 나타내기

      어떠한 그래프를 그리고 난 후 수식을 나타내고 싶을 때는 plt.text() 함수를 이용해야 합니다. plt.text() 함수의 인자에는 text를 나타낼 좌표를 입력하게 됩니다. 아래 코드의 경우 (1, 14) 위치에 알파가 베타보다 크다는 수식을 넣으려고 하는 겁니다.

     

    plt.text(1, 15, r'$\alpha > \beta$', fontdict={'size': 16})

     

     그래프를 그린 후 plt.text() 함수를 사용하여 아래와 같이 수식을 나타낼 수 있습니다. text() 함수 안에 r'$\alpha > \beta$'의 구문이 수식을 나타나게 합니다. r'$    $' 의 표현 안에 LaTeX 문자식을 넣어주면 그래프에 표기됩니다.

     

    그래프에 수식 나타내기
    그래프에 수식 나타내기

     

     

     

    2. 그리스 문자의 LaTeX 문자 표현

     plt.text()에 넣는 방법을 알았으니 LaTeX에 어떤 문자들을 나타낼 수 있는지 알아보겠습니다. 우선 그리스 문자들을 표로 정리해 봤습니다.

     

    그리스 문자 소문자의 LaTeX 문자식
    그리스 문자 소문자의 LaTeX 문자식

     

    그리스 문자 대문자의 LaTeX 문자식
    그리스 문자 대문자의 LaTeX 문자식

     

     

    3. 분수와 루트 표현

     이번에는 LaTeX 문자식을 이용하여 분수와 루트에 대한 표현 방법에 대해 알아보겠습니다.

     

    분수 표기
    분수 표기

     

     분수의 경우 \frac{}{} 와 같이 표기를 하는데 분모나 분자에 또 다른 분수를 표기할 경우에는 그곳에 같이 방법으로 입력하면 됩니다.

     

    루트 표기

     

     루트의 표기는 \sqrt{} 안에 숫자를 넣으면 되고, 거듭제곱의 수를 입력하기 위해서는 []를 사용합니다.

     

     

    4. 대형 기호 표기와 사용법

     sum을 나타내는 기호들은 윗 첨자와 아래 첨자를 같이 사용하여 해당 위치에 원하는 값을 넣을 수 있습니다. LaTeX 문자식에서 '_'는 아래첨자고 '^'는 윗 첨자를 나타냅니다.

     

    윗 첨자와 아래 첨자
    윗 첨자와 아래 첨자

     

     대형 기호 다음에 윗 첨자와 아래 첨자식을 이용하여 다양한 표현을 할 수 있습니다. 1~10까지의 sum을 표기하고 싶다면 '\sum_1^10' 이라고 하면 됩니다.

     

    대형 기호
    대형 기호

     

     

    5. LaTeX 문자열을 위한 예제 코드

     지금까지 정리한 문자열이 그래프에 어떻게 반영되는지 확인하기 위해 예제 코드를 만들었습니다. 전체적이 내용을 이해하고 자신의 코드에 잘 응용했으면 합니다.

     

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(-10, 10, 400)
    
    # 그래프 데이터 생성
    y1 = np.sin(x)
    y2 = np.exp(-x / 5) * np.cos(2*x)
    y3 = np.log(x + 10)
    
    plt.figure(figsize=(10, 6))
    
    # 데이터 그래프 생성
    plt.plot(x, y1, label=r'$\sin(x)$')
    plt.plot(x, y2, label=r'$e^{-x/5} \cdot \cos(2x)$')
    plt.plot(x, y3, label=r'$\log(x + 10)$')
    
    # 그래프 제목 및 레이블 설정
    plt.title("Mathematical Symbols and Functions")
    plt.xlabel("X")
    plt.ylabel("Y")
    
    # 범례 추가
    plt.legend()
    
    # 그래프 보이기
    plt.show()

     

     이번 코드에서는 plt.text()를 이용하지 않고 그래프의 라벨을 만들어 표기하는 방식을 적용했습니다.

     

    라벨에 수식을 넣어서 범례로 표기
    라벨에 수식을 넣어서 범례로 표기

     

     

    6. 마치며

     LaTeX 문자식을 지원하는 파이썬에서 그래프를 그릴 때 그래프 안에 수식을 넣는 방법에 대해 알아보았습니다. 그리스 문자와 같은 특수 문자에 대한 표현식을 정리했으며, 분수와 루트의 표현식도 알아봤습니다. 암기까지는 아니고 이런 것이 있다는 것을 알아놓으면 나중에 응용해서 사용하실 수 있을 겁니다.

    댓글