기본 콘텐츠로 건너뛰기

6월, 2025의 게시물 표시

[matplotlib]quiver()함수

[matplotlib]quiver()함수

방향도 작성 (Direction Plot) import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.family'] = "Nanumgothic" plt.rcParams['axes.unicode_minus'] = False 방향도를 작성할 식을 함수로 작성합니다. def dv_dt(t, v): return 9.8-v/5 방향도를 그릴 (t, v) 평면의 격자점을 생성. meshgrid() 함수를 사용하여 각 (t, v) 쌍을 생성 t_min, t_max=0, 10 v_min, v_max=40, 60 t_interval=1 v_interval = 4 t=np.arange(t_min, t_max+t_interval, t_interval) v=np.arange(v_min, v_max+v_interval, v_interval) T, V=np.meshgrid(t, v) 각 (t, v) 격자점에서 dv/dt 값 계산, 이 값은 각 지점에서의 기울기입니다. slope=dv_dt(T, V) quiver() 함수는 화살표의 (x, y)위치와 (x방향 성분, y 방향성분)을 인자로 받습니다. 화살표의 길이를 일정하게 유지하면서 방향만 표시하기 위해 각 기울기값(slope)를 단위 벡터로 정규화합니다. u=1(t 방향성분) w=slope(v 방향성분) 이때 화살표의 길이(L)을 일정하게 하고 방향만 유지하기 위해 u, w를 정규화 합니다. L=np.sqrt(1**2+slope**2) u=1/L w=slope/L 하지만 quiver 함수는 scale 인자를 사용하여 화살표의 길이를 조절할 수 있으므로, 단순히 U=1과 W=slopes로 설정하고 scale을 조정하는 것이 더 직관적일 수 있습니다. 여기서는 scale을 사용하여 화살표의 상대적인 길이를 조절해 보겠습니다. U=np.ones_like(T) W=slope...