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

Matplotlib 플롯 내부에 축 선을 그리는 방법

Matplotlib로 플롯 내부에 축 선 그리기

Matplotlib에서 그래프 내부에 축 선을 그리려면 spines(축 테두리)의 위치를 조정하면 됩니다. 아래 단계를 따라 하면 x축과 y축이 그래프 중앙, 즉 0 지점을 통과하는 형태로 표시됩니다.

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • 새 그림을 생성하거나 기존 그림을 활성화합니다.
  • numpy를 사용하여 x 데이터 포인트를 생성합니다.
  • add_subplot() 메서드로 그림에 축(ax)을 추가합니다.
  • plot() 메서드를 사용해 x와 x*x 데이터를 시각화합니다.
  • 왼쪽(left)과 아래(bottom) spine의 위치를 0으로 설정하고, 오른쪽(right)과 위(top) spine의 색상을 제거하여 숨깁니다.
  • show() 메서드로 결과 그림을 화면에 출력합니다.

예제 코드

import numpy as np
import matplotlib.pyplot as plt

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

fig = plt.figure()

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

ax = fig.add_subplot(111)
ax.plot(x, x*x)

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

plt.show()

핵심 포인트 정리

set_position() 메서드에는 'zero'(데이터 좌표의 0 지점), 'center'(축 영역의 중앙) 등의 값을 지정할 수 있습니다. 이 예제에서는 왼쪽 spine을 y=0 위치로, 아래쪽 spine을 x=0 위치로 옮겨 두 축이 그래프 중앙에서 교차하도록 만들었습니다. 반면 오른쪽과 위쪽 spine은 set_color('none')으로 색상을 제거해 화면에서 보이지 않게 처리했습니다. 필요에 따라 set_visible(False)를 사용해도 동일한 효과를 얻을 수 있습니다.

실행 결과

위 코드를 실행하면 왼쪽과 아래쪽 축이 각각 y=0, x=0 지점으로 이동하여 두 축이 그래프 중앙에서 교차하는 형태의 곡선이 출력됩니다.

Matplotlib 플롯 내부에 축 선을 그리는 방법Matplotlib 플롯 내부에 축 선을 그리는 방법