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

Matplotlib에서 축 영역 밖에 선(화살표) 그리는 방법

Matplotlib에서는 annotate() 메서드를 활용하면 축(axis) 영역 바깥쪽에도 선이나 화살표를 자유롭게 그릴 수 있습니다. 이 기능은 그래프 아래나 옆에 보조 설명, 범위 표시 등을 추가할 때 특히 유용합니다.

구현 단계

  • 그림 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.

  • figure() 메서드를 사용해 새 figure를 생성하거나 기존 figure를 활성화합니다.

  • clf() 메서드로 현재 figure의 내용을 초기화(clear)합니다.

  • add_subplot() 메서드를 사용해 서브플롯 배치의 일부로 '~.axes.Axes' 객체를 figure에 추가합니다.

  • annotate() 메서드를 사용하여 축 영역 외부에 선을 배치합니다. 이때 xycoords='axes fraction' 옵션을 지정하면 좌표가 축 대비 비율(0~1)로 해석되므로, 0보다 작거나 1보다 큰 값을 넣어 축 바깥에 위치시킬 수 있습니다.

  • show() 메서드로 figure를 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt

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

fig = plt.figure(1)
fig.clf()

ax = fig.add_subplot(1, 1, 1)
ax.annotate('', xy=(0, -0.1), xycoords='axes fraction', xytext=(1, -0.1),
arrowprops=dict(arrowstyle="<->", color='b'))
plt.show()

코드 설명

위 예제에서 핵심은 annotate() 호출 부분입니다. 시작점 xy=(0, -0.1)과 끝점 xytext=(1, -0.1)의 y값이 -0.1로 설정되어 있기 때문에, 파란색 양방향 화살표(<->)가 x축 아래쪽, 즉 축 영역 밖에 그려집니다. arrowprops 인자를 통해 화살표 스타일과 색상을 지정할 수 있으며, 필요에 따라 두께(linewidth)나 선 종류(linestyle)도 추가로 조절 가능합니다.

실행 결과

Matplotlib에서 축 영역 밖에 선(화살표) 그리는 방법

실행하면 그래프 하단에 x축 전체 길이를 가로지르는 파란색 양방향 화살표가 나타나는 것을 확인할 수 있습니다. 이와 같은 방식으로 응용하면 데이터 범위를 강조하거나, 그래프 외곽에 주석·측정선을 추가하는 등 다양한 시각화 효과를 구현할 수 있습니다.