Matplotlib에서 양방향 화살표 만들기
Matplotlib의 축 위에 양쪽 끝이 화살촉으로 된 양방향(double-headed) 화살표를 간단하게 그리려면 annotate() 메서드를 활용하면 됩니다. 아래 단계를 따라 해 보세요.
1단계: figure 크기 설정
먼저 figure의 크기를 지정하고, 서브플롯 주변과 사이의 여백(padding)을 자동으로 조정합니다.
import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True
- figure.figsize: figure의 가로·세로 크기(인치)를 지정합니다.
- figure.autolayout: True로 설정하면 레이블 등이 잘리지 않도록 여백이 자동 조절됩니다.
2단계: annotate() 메서드로 화살표 추가
annotate() 메서드는 특정 좌표(xy)에 텍스트와 함께 화살표를 그릴 때 사용합니다. 핵심 파라미터는 다음과 같습니다.
- text: 화살표에 표시할 문자열입니다. 여기서는 'Arrows'를 사용합니다.
- xy: 화살표가 가리키는 시작점(끝점) 좌표입니다.
- xytext: 텍스트가 위치하는 좌표로, 화살표의 반대쪽 끝이 됩니다.
- arrowprops: 화살표 스타일을 딕셔너리 형태로 지정합니다.
arrowstyle='<->'로 설정하면 양방향 화살표가 되고,color='red'로 색상을 지정할 수 있습니다.
plt.annotate('Arrows', xy=(0.1, .1), xytext=(0.5, 0.5),
arrowprops=dict(arrowstyle='<->', color='red'))arrowstyle에는 다양한 옵션을 사용할 수 있습니다. 예를 들어 '->'는 한 방향 화살표, '<-'는 반대 방향 화살표, '<->'는 양방향 화살표를 의미합니다.
3단계: 결과 출력
마지막으로 show() 메서드를 호출해 figure를 화면에 표시합니다.
plt.show()
전체 코드
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.annotate('Arrows', xy=(0.1, .1), xytext=(0.5, 0.5),
arrowprops=dict(arrowstyle='<->', color='red'))
plt.show()실행 결과
위 코드를 실행하면 (0.5, 0.5) 위치의 'Arrows' 텍스트에서 (0.1, 0.1) 좌표까지 이어지는 빨간색 양방향 화살표가 그려진 그래프가 출력됩니다.
이처럼 annotate()의 arrowprops 옵션만 잘 활용하면 별도의 복잡한 설정 없이도 원하는 모양의 화살표를 손쉽게 시각화할 수 있습니다.