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

파이썬 Matplotlib에서 원점을 코사인 곡선 중앙에 배치하는 방법

Matplotlib로 그래프를 그릴 때 기본적으로 축(눈금 축)은 그림의 왼쪽 아래 모서리에 위치합니다. 하지만 수학 함수를 시각화할 때는 원점(0, 0)이 그래프의 중앙에 오도록 축을 이동시키는 것이 훨씬 직관적입니다. 이 글에서는 spines(축 테두리)를 조정하여 원점을 코사인 곡선의 중심에 배치하는 방법을 알아봅니다.

구현 단계

  • 그림 크기(figsize)를 설정하고 서브플롯 주변의 여백(padding)을 자동으로 조정합니다.
  • NumPy를 사용하여 x, y 데이터 포인트를 생성합니다.
  • spinestop, left, right, bottom 속성을 조정하여 축의 위치를 변경합니다.
  • plot() 메서드로 x, y 데이터를 그립니다.
  • title() 메서드로 그래프 제목을 설정합니다.
  • show() 메서드로 그림을 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(-5, 5, 100)
y = np.cos(x)

ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')

plt.plot(x, y)
plt.title("$\\bf{y=cos(x)}$")

plt.show()

코드 설명

핵심은 ax.spines 설정 부분입니다. Spine은 그래프 영역을 둘러싸는 네 개의 테두리 선을 의미합니다.

  • set_color('none'): 위쪽(top)과 오른쪽(right) 테두리를 투명하게 만들어 일반적인 수학 좌표평면처럼 보이게 합니다.
  • set_position('zero'): 왼쪽(left)과 아래쪽(bottom) 테두리를 데이터 값이 0인 위치, 즉 원점을 지나도록 이동시킵니다.

또한 np.linspace(-5, 5, 100)을 사용해 -5부터 5까지 100개의 균등한 간격의 x 값을 생성하고, 이에 대응하는 코사인 값을 계산하여 부드러운 곡선을 얻습니다.

실행 결과

위 코드를 실행하면 x축과 y축이 그래프 중앙의 원점에서 교차하고, 그 위에 코사인 곡선이 그려진 좌표평면 형태의 그래프가 출력됩니다.