Matplotlib에서 일반적인 직선 대신 화살표(arrow) 형태의 선을 그리고 싶다면 quiver() 메서드를 활용하면 됩니다. quiver()는 원래 벡터장을 시각화하기 위한 함수지만, 각 구간의 시작점과 변화량(방향 벡터)을 전달하면 연속된 화살표가 이어진 것처럼 표현할 수 있습니다.
구현 단계
그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조절합니다.
numpy를 사용하여 x, y 데이터 포인트를 생성합니다.
quiver() 메서드를 사용하여 화살표 스타일의 선을 그립니다.
show() 메서드를 호출하여 결과 그림을 화면에 출력합니다.
예제 코드
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(-5, 5, 100) y = np.sin(x) plt.quiver(x[:-1], y[:-1], x[1:]-x[:-1], y[1:]-y[:-1], scale_units='xy', angles='xy', scale=1, color='red') plt.show()
코드 설명
위 코드에서 핵심은 quiver()에 전달되는 네 가지 인자입니다. x[:-1]과 y[:-1]은 각 화살표의 시작 좌표를 나타내고, x[1:]-x[:-1]과 y[1:]-y[:-1]은 다음 점까지의 변위(방향과 크기)를 나타냅니다. 또한 scale_units='xy', angles='xy', scale=1 옵션을 함께 사용하면 데이터 좌표계 기준으로 화살표 길이가 실제 값과 일치하게 되어, 마치 하나의 연결된 곡선처럼 자연스럽게 그려집니다. 색상은 color='red'로 지정했습니다.
출력 결과
