Matplotlib で水平線と垂直線をプロットする方法

  1. Matplotlib で水平線と垂直線をプロットするための axhlineaxvline
  2. Matplotlib で水平線と垂直線をプロットするための hlinesvlines
  3. Matplotlib での水平線と垂直線の描画の結論

このチュートリアルでは、Matplotlib で水平線と垂直線を描画する 2つの方法を紹介します。これら 2つの方法は、Matplotlib で異なる座標を使用します。

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

Matplotlib で水平線と垂直線をプロットするための axhlineaxvline

axhline で水平線をプロットする

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

axhline は、水平線のデータ座標の y の位置に、0.0 から 1.0 の間の xmin から xmax までの水平線をプロットします。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_plot の水平線と axhline

axvline で垂直線をプロットする

同様に、

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

axvline は、垂直線のデータ座標の x の位置に、ymin から ymax までの 0.0 から 1.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_plot の縦線と axhline

上記のように、xmin/xmax および ymin/ymax はプロットを参照しますが、データ行は参照しません。

したがって、プロットをズームインまたはズームアウトすると、水平線と垂直線の開始点と終了点はデータ座標への参照で更新されますが、プロット座標内の相対位置に固定されます。以下のアニメーションを確認して、理解を深めることができます。

Matplotlib の水平線と垂直線のズーム効果

Matplotlib で水平線と垂直線をプロットするための hlinesvlines

プロットされた水平線と垂直線を自動的に変更してデータ座標に対する相対位置を維持する場合は、ラインをプロットするために 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 がより良い選択です。

comments powered by Disqus