【Matplotlib】直線や帯線を表示する方法 (hlines, vlines, axhline, axvline, axline, axhspan, axvspan)

直線や帯線をグラフに表示する方法に悩んでいませんか?特定のデータ点や範囲を強調したい場合,適切な手法で直線や帯線をプロットすることが重要です

PythonのMatplotlibでは,水平および垂直の直線を数行のコードで簡単に表示させることができます

この記事では,Matplotlibのhlines, vlines, axhline, axvline, axline, axhspan, axvspanなどの機能を使って,直線や帯線を簡単にグラフに表示する方法を詳しく解説します

目次

無限に長い直線を表示する (axhline, axvline, axline)

無限に長く,軸にまたがる直線を表示します

axhlineとaxvlineは水平,垂直な直線で,axlineは座標を指定して直線を表示することが可能です

水平線 (axhilne)

axhline関数にy座標の数値を指定することで水平線が表示されます

y = 0.75の位置に直線を描画します

Axes.axhline (y=0xmin=0xmax=1)
引数
  • y (float):水平線を描画するyの位置
  • xmin (float):初期値は0で,グラフの左端が0,右端が1
  • xmax (float):初期値は1で,グラフの左端が0,右端が1
返値
公式ドキュメント

下記のタブにコードとフローチャートの解説をしています

import matplotlib.pyplot as plt
import numpy as np

# step1 グラフフレームの作成
fig, ax = plt.subplots()
# step2 Axes.axhlineによる直線の表示
threshold = 0.75
ax.axhline(threshold, color='C0', lw=2)

ax.set_title('Axhline')
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.set_xlabel('Xlabel')
ax.set_ylabel('Ylabel')

plt.show()

垂直線 (axvline)

axvline関数にx座標の数値を指定することで垂直線が表示されます

x = 0.75の位置に直線を描画します

Axes.axvline (x=0ymin=0ymax=1)
引数
  • x (float):垂直線を描画するyの位置
  • ymin (float):初期値は0で,グラフの下端が0,上端が1
  • ymax (float):初期値は1で,グラフの下端が0,上端が1
返値
公式ドキュメント
# step2 Axes.axvlineによる直線の表示
threshold = 0.75
ax.axvline(threshold, color='C1', lw=2)

座標と傾きを指定した直線 (axline)

axline関数に座標を2つもしくは座標1つと傾きを指定することで任意の直線が表示されます

Axes.axline (xy1xy2=Noneslope=None)
引数
  • xy1 (float):直線が通る座標
  • xy2 (float):2つ目の座標.xy2を設定した場合,slopeを設定しません
  • slope (float):直線の傾き.slopeを設定した場合,xy2は設定しません
返値
公式ドキュメント

(0, 0)と(4, 8)の座標を通る直線を描画します

# step2 Axes.axlineによる直線の表示
ax.axline((0, 0), (4, 8), color='red', lw=2)

座標(0, 0)傾き0.5の直線を描画します

# step2 Axes.axlineによる直線の表示
ax.axline((0, 0), slope=0.5, color='#0097a7', lw=2)

水平な直線を表示する (Axes.hlines)

水平な直線をMatplotlibで表示するにはAxes.hlinesという関数を使います

xの範囲を指定することで好きな長さの直線が表示されます

Axes.hlines (yxminxmax)
引数
  • y (float, 配列):水平線を描画したいyの位置
  • xmin, xmax (float, 配列):水平線の始点と終点
  • colors (リスト):線の色
  • linestyles:線のスタイル(dashed, –)
  • label (文字列):ラベル
返値
公式ドキュメント

下記のタブにコードとフローチャートの解説をしています

import matplotlib.pyplot as plt
import numpy as np

# step1 データの作成
t = np.arange(0.0, 5.0, 0.1)
s = np.exp(-t) + np.sin(2 * np.pi * t) + 1
# step2 グラフフレームの作成
fig, ax = plt.subplots()

ax.plot(s, t, '^')
# step3 Axes.hlinesによる水平線の表示
ax.hlines(t, 0, s, lw=2)

ax.set_xlabel('time (s)')
ax.set_title('Horizontal lines demo')

plt.show()

垂直な直線を表示する (Axes.vlines)

垂直な直線をMatplotlibで表示するにはAxes.vlinesという関数を使います

yの範囲を指定することで好きな長さの直線が表示されます

Axes.vlines (xyminymax)
引数
  • x (float, 配列):垂直線を描画したいyの位置
  • ymin, ymax (float, 配列):垂直線の始点と終点
  • colors (リスト):線の色
  • linestyles:線のスタイル(dashed, –)
  • label (文字列):ラベル
返値
公式ドキュメント
ax.plot(t, s, '^')
ax.vlines(t, 0, s, lw=2)

plt.show()

無限に長い帯線を表示する (axhspan, axvspan)

線ではなく好きな幅を持つ帯線を表示させることも可能です

axhspanは水平な帯線, axvspanは垂直な帯線を表示できます

水平な帯線 (axhspan)

axhspan関数にyの最大値と最小値を指定することで水平な帯線が表示されます

ymin = 5, ymax = 8で指定して描画しました

Axes.axhspan (yminymaxxmin=0xmax=1)
引数
  • ymin (float):帯線の最小値のy座標
  • ymax (float):帯線の最大値のy座標
  • xmin (float):初期値は0で,グラフの左端が0,右端が1
  • xmax (float):初期値は1で,グラフの左端が0,右端が1
返値
公式ドキュメント
import matplotlib.pyplot as plt
import numpy as np

# step1 データの作成
min_value = 5
max_value = 8
# step2 グラフフレームの作成
fig, ax = plt.subplots()
# step3 Axes.hspanによる水平帯線の表示
ax.axhspan(min_value, max_value, color='C0', alpha=0.7)
ax.set_title('Axhspan')

ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
ax.set_xlabel('Xlabel')
ax.set_ylabel('Ylabel')

plt.show()

垂直な帯線 (axvspan)

axvspan関数にxの最大値と最小値を指定することで水平な帯線が表示されます

xmin = 5, xmax = 8で指定して描画しました

Axes.axvspan (xminxmaxymin=0ymax=1)
引数
  • xmin (float):帯線の最小値のx座標
  • xmax (float):帯線の最大値のx座標
  • ymin (float):初期値は0で,グラフの左端が0,右端が1
  • ymax (float):初期値は1で,グラフの左端が0,右端が1
返値
公式ドキュメント
# step3 Axes.vspanによる垂直帯線の表示
ax.axvspan(min_value, max_value, color='C1', alpha=0.7)
ax.set_title('Axvspan')

参考文献

任意の直線を表示するhlinesとvlinesの公式ドキュメント

無限に長い直線を表示するaxhline, axvline, axlineの公式ドキュメント

無限に長い帯線を表示するaxhspanとaxvspanの公式ドキュメント

お疲れ様でした

シェアしてくださると嬉しいです!
  • URLをコピーしました!

コメント

コメントする

目次