如何在 Matplotlib 中繪製水平和垂直線

Jinku Hu 2023年1月30日 2019年12月9日
  1. axhlineaxvline 在 Matplotlib 中繪製水平和垂直線
  2. hlinesvlines 在 Matplotlib 中繪製水平和垂直線
  3. 在 Matplotlib 中繪製水平和垂直線的結論
  4. Conclusion of drawing horizontal and vertical lines in Matplotlib
如何在 Matplotlib 中繪製水平和垂直線

在本教程中,我們將介紹兩種在 Matplotlib 中繪製水平和垂直線條的方法。這兩種方法在 Matplotlib 中使用不同的座標系統。

  • axhline() / axvline()
  • hlines() / vlines()

axhlineaxvline 在 Matplotlib 中繪製水平和垂直線

axhline 畫一條水平線

matplotlib.pyplot.axhline(y=0, xmin=0, xmax=1, hold=None, **kwargs)

axhline 在水平線的 y 資料座標中的位置處繪製一條水平線,從 xminxmax,該點應位於 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()

Matplotlib 用 axhline 畫水平線

axvline 畫一條垂直線

同樣,

matplotlib.pyplot.axvline(x=0, ymin=0, ymax=1, hold=None, **kwargs)

axvline 在垂直線的 x 資料座標中的位置處繪製一條垂直線,從 yminymax,該點應在 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.axvline(x=5, ymin=0.1, ymax=0.9)

plt.grid()
plt.show()

Matplotlib 用 axhline 畫垂直線

如上所述,xmin/ xmaxymin/ ymax 是指 Matplot 圖,而不是所繪製的資料線。

因此,如果我們放大或縮小繪圖,則水平和垂直線的起點和終點將參考資料座標進行更新,但會固定在繪圖座標中的相對位置。我們可以用下面的動畫來更好的理解。

Matplotlib 水平和垂直線放大效果

hlinesvlines 在 Matplotlib 中繪製水平和垂直線

如果我們希望繪製的水平線和垂直線會自動更改以保持對所繪資料的相對位置,則需要使用 hlinesvlines

hlines(y, xmin, xmax)

這裡 yxminxmax 指的是資料座標值。

vlines(x, ymin, ymax)

這裡 xyminymax 指的是資料座標值。

讓我們看下面的程式碼示例。

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 hlines 和 vlines 繪製水平和垂直線

Matplotlib hlines 和 vlines 水平和垂直線放大效果

在 Matplotlib 中繪製水平和垂直線的結論

如果你繪製的線段跟繪圖保持相對固定的位置,則 axhlineaxvline 應該是更好的選擇。

如果你繪製的線段需要參照所繪資料,則 hlinesvlines 是更好的選擇。

Matplotlib_hlines and vlines to plot horizontal and vertical lines

Matplotlib hlines and vlines horizontal and vertical line zoom in effect

Conclusion of drawing horizontal and vertical lines in Matplotlib

If you need the line to be referred to the plot, axhline and axvline should be the better option.

If you prefer the line to stick to the data coordinate, hlines and vlines are the better choices.

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

相關文章 - Matplotlib Line