Matplotlib 에서 가로 및 세로 선을 그리는 방법
-
Matplotlib 에서 가로 및 세로 선을 그리는
axhline
및axvline
-
Matplotlib 에서 가로 및 세로 선을 그리는
hlines
및vlines
- Matplotlib 에서 가로 및 세로 선 그리기의 결론
이 튜토리얼에서는 Matplotlib 에서 가로 및 세로 선을 그리는 두 가지 방법을 소개합니다. 이 두 방법은 Matplotlib 에서 다른 좌표를 사용합니다.
axhline()
/axvline()
hlines()
/vlines()
Matplotlib 에서 가로 및 세로 선을 그리는 axhline
및 axvline
수평선을 그리는 axhline
matplotlib.pyplot.axhline(y=0, xmin=0, xmax=1, hold=None, **kwargs)
axhline
은 가로선의 데이터 좌표에서 y
위치에 가로선을 표시합니다.xmin
에서 xmax
사이에서 0.0
과 1.0
사이에 있어야합니다. 여기서 0.0
은 멀리 있습니다 플롯의 왼쪽은 1.0
이 플롯의 가장 오른쪽입니다.
from matplotlib import pyplot as plt
xdata = list(range(10))
ydata = [_ * 2 for _ in xdata]
plt.plot(xdata, ydata, "b")
plt.axhline(y=5, xmin=0.1, xmax=0.9)
plt.grid()
plt.show()
세로줄을 그리는 axvline
비슷하게,
matplotlib.pyplot.axvline(x=0, ymin=0, ymax=1, hold=None, **kwargs)
axvline
은 ymin
에서 ymax
사이에서 시작하여 0.0
과 1.0
사이에 있어야하는 세로선의 데이터 좌표에서 x
위치에 세로선을 표시합니다. 여기서 0.0은 맨 아래입니다. 플롯의 1.0
은 플롯의 상단입니다.
from matplotlib import pyplot as plt
xdata = list(range(10))
ydata = [_ * 2 for _ in xdata]
plt.plot(xdata, ydata, "b")
plt.axvline(x=5, ymin=0.1, ymax=0.9)
plt.grid()
plt.show()
위에서 언급했듯이 xmin
/xmax
와 ymin
/ymax
는 데이터 라인이 아니라 플롯을 참조합니다.
따라서 플롯을 확대 또는 축소하면 수평선과 수직선의 시작 및 끝 점이 데이터 좌표를 기준으로 업데이트되지만 플롯 좌표의 상대 위치를 고수합니다. 더 나은 이해를 위해 아래 애니메이션을 확인할 수 있습니다.
Matplotlib 에서 가로 및 세로 선을 그리는 hlines
및 vlines
플로팅 된 가로 및 세로 선이 데이터 좌표에 대한 상대 위치를 유지하기 위해 자동으로 변경되도록하려면 hlines
및 vlines
를 사용하여 선을 플로팅해야합니다.
hlines(y, xmin, xmax)
여기서 y, xmin, xmax 는 데이터 좌표의 값입니다.
vlines(x, ymin, ymax)
여기에서 x
,ymin
및 ymax
는 데이터 좌표의 값입니다.
아래 예제 코드를 보자.
from matplotlib import pyplot as plt
xdata = list(range(10))
ydata = [_ * 2 for _ in xdata]
plt.plot(xdata, ydata, "b")
plt.hlines(y=5, xmin=0, xmax=10)
plt.vlines(x=5, ymin=0, ymax=20)
plt.grid()
plt.show()
Matplotlib 에서 가로 및 세로 선 그리기의 결론
줄을 플롯으로 참조하려면 axhline
과 axvline
이 더 나은 옵션이어야합니다.
선이 데이터 좌표에 고정되도록하려면 hlines
와 vlines
가 더 좋습니다.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook