Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

LaTeX로 렌더링할 때 Matplotlib 플롯의 축 눈금 글꼴을 변경하는 방법

LaTeX를 사용해 렌더링하는 환경에서 Matplotlib 플롯의 축 눈금(tick) 글꼴을 변경하려면 다음 단계를 따르면 됩니다.

  • numpy를 사용하여 x, y 데이터 포인트를 생성합니다.
  • subplot() 메서드를 이용해 현재 figure에 서브플롯을 추가합니다.
  • set_xticks()set_yticks() 메서드를 사용하여 각각 데이터 포인트 x, y 값으로 축 눈금 위치를 설정합니다.
  • plot() 메서드에 color="red" 옵션을 지정하여 그래프를 빨간색 선으로 그립니다.
  • 글꼴을 굵게(bold) 표시하려면 LaTeX 수학 표현식($\bf{...}$)을 활용합니다.
  • show() 메서드를 호출하여 완성된 figure를 화면에 표시합니다.

핵심 포인트

눈금 레이블의 글꼴 스타일을 바꾸는 핵심은 set_xticklabels()set_yticklabels()에 LaTeX 형식의 문자열을 전달하는 것입니다. 예를 들어 "$\\bf{one}$"처럼 작성하면 해당 레이블이 굵은 글씨체로 렌더링됩니다. 또한 rotation=45 옵션을 함께 사용하면 레이블이 서로 겹치지 않고 45도 기울어진 형태로 깔끔하게 배치됩니다.

예제 코드

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.array([1, 2, 3, 4])
y = np.exp(x)

ax1 = plt.subplot()
ax1.set_xticks(x)
ax1.set_yticks(y)
ax1.plot(x, y, c="red")

ax1.set_xticklabels(["$\\bf{one}$", "$\\bf{two}$", "$\\bf{three}$", "$\\bf{four}$"], rotation=45)
ax1.set_yticklabels(["$\\bf{:.2f}$".format(y[0]), "$\\bf{:.2f}$".format(y[1]),
   "$\\bf{:.2f}$".format(y[2]), "$\\bf{:.2f}$".format(y[3])], rotation=45)

plt.tight_layout()
plt.show()

실행 결과

LaTeX로 렌더링할 때 Matplotlib 플롯의 축 눈금 글꼴을 변경하는 방법

코드 설명

위 코드에서 plt.rcParams["figure.figsize"]는 figure 크기를 7×3.5인치로 지정하고, "figure.autolayout"은 그래프 요소가 잘리지 않도록 여백을 자동으로 조정해 줍니다. x축에는 one, two, three, four라는 텍스트 레이블을, y축에는 "{:.2f}".format()으로 소수점 둘째 자리까지 반올림된 지수 함수 값을 표시합니다. 모든 레이블은 $\\bf{}$ LaTeX 명령어를 통해 굵은 글씨로 처리되며, rotation=45 옵션 덕분에 가독성 있게 회전 배치됩니다.