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

胡金庫 2023年1月30日
  1. Matplotlib で水平線と垂直線をプロットするための axhlineaxvline
  2. Matplotlib で水平線と垂直線をプロットするための hlinesvlines
  3. Matplotlib での水平線と垂直線の描画の結論
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 がより良い選択です。

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - Matplotlib Line