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

Matplotlib에서 점근선과 불연속점을 처리하는 방법

그래프에 점근선(asymptote)이나 불연속점(discontinuity)이 포함된 함수를 그릴 때는, 함수 곡선과 함께 기준선을 명확하게 표시해 주는 것이 좋습니다. Matplotlib에서는 axhline()axvline() 메서드를 활용하면 간단하게 처리할 수 있습니다.

예를 들어 y = 1/x 함수는 x = 0에서 발산하는 전형적인 불연속 함수입니다. 이러한 그래프를 다음 단계에 따라 시각화할 수 있습니다.

  • NumPy를 사용하여 x, y 데이터 포인트를 생성합니다.

  • plt.axis('off')로 기본 축 표시를 끕니다.

  • x, y 데이터로 함수 곡선을 그립니다.

  • axhline()으로 수평선(x축, y=0)을 추가합니다.

  • axvline()으로 수직선(y축, x=0)을 추가합니다.

  • y = 1/x 곡선에 대한 범례(legend)를 배치합니다.

  • show() 메서드를 호출하여 그래프를 화면에 출력합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-1, 1, 100)
y = 1 / x
plt.axis('off')
plt.plot(x, y, label='y=1/x')
plt.axhline(y=0, c='red')
plt.axvline(x=0, c='red')
plt.legend(loc='upper left')
plt.show()

실행 결과

Matplotlib에서 점근선과 불연속점을 처리하는 방법

위 코드를 실행하면 빨간색 수평선과 수직선이 좌표축 역할을 하며, y = 1/x 곡선이 원점 근처에서 위아래로 발산하는 모습을 통해 x = 0 지점의 불연속성을 한눈에 확인할 수 있습니다. 참고로 np.linspace(-1, 1, 100) 구간에는 정확히 0이 포함되지 않으므로 ZeroDivisionError 없이 그래프가 자연스럽게 그려집니다.