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

Matplotlib set_xlim과 set_xbound의 차이점 완벽 정리

Matplotlib set_xlim과 set_xbound의 차이점

Matplotlib에서 X축 범위를 조절할 때 사용하는 대표적인 메서드는 set_xlim()set_xbound() 두 가지가 있습니다. 이름은 비슷해 보이지만 내부적으로 동작하는 방식에 중요한 차이가 있습니다.

  • set_xlim — X축의 뷰 한계(view limits)를 설정합니다. 이 메서드를 호출하면 해당 축의 자동 스케일링(autoscaling)이 비활성화되어, 이후 데이터가 변경되어도 축 범위가 자동으로 조정되지 않습니다.

  • set_xbound — X축의 하한(lower bound)과 상한(upper bound)을 설정합니다. 자동 스케일링 설정은 그대로 유지되며, 축이 반전(inverted)된 경우에도 반전 방향을 존중하여 경계를 적용합니다.

즉, 화면에 보이는 범위를 고정하고 싶다면 set_xlim()을, 자동 스케일링 동작을 유지한 채 데이터의 표시 경계만 지정하고 싶다면 set_xbound()를 사용하는 것이 좋습니다.

구현 단계

  1. subplots(2)를 사용해 하나의 피겨와 2개의 서브플롯을 생성합니다.

  2. numpy를 이용해 x, y 데이터 포인트를 생성합니다.

  3. 첫 번째 축(axes[0])에 plot() 메서드로 x, y 데이터를 그립니다.

  4. set_xlim() 메서드로 첫 번째 그래프의 X축 한계를 설정합니다.

  5. 두 번째 축(axes[1])에 plot() 메서드로 x, y 데이터를 그립니다.

  6. set_xbound() 메서드로 두 번째 그래프의 X축 경계를 설정합니다.

  7. show() 메서드로 피겨를 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt

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

fig, axes = plt.subplots(2)

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

axes[0].plot(x, y, c='g')
axes[0].set_xlim(-3, 3)

axes[1].plot(x, y, c='r')
axes[1].set_xbound(-3, 3)

plt.show()

실행 결과

Matplotlib set_xlim과 set_xbound의 차이점 완벽 정리

위 코드를 실행하면 초록색 사인 곡선과 빨간색 사인 곡선 두 개의 그래프가 나란히 표시됩니다. 두 그래프 모두 X축이 -3부터 3까지만 보이도록 설정되었기 때문에 겉보기에는 결과가 같아 보입니다. 하지만 set_xlim()을 사용한 첫 번째 그래프는 자동 스케일링이 꺼진 상태로 고정되는 반면, set_xbound()를 사용한 두 번째 그래프는 자동 스케일링 설정이 유지된다는 점에서 본질적인 차이가 있습니다.