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