Matplotlib にプロット垂直線を引く

Vaibhav Vaibhav 2021年11月29日
Matplotlib にプロット垂直線を引く

グラフを操作する場合、情報を表すためにグラフ上に水平線と垂直線を描画する必要があります。それは、いくつかの平均値、いくつかのしきい値、またはいくつかの範囲である可能性があります。この記事では、Python で Matplotlib を使用して生成されたプロットに垂直線を作成する方法について説明します。

Matplotlib で axvline() を使用して垂直線を描画する

axvline() は、軸に沿って垂直線を描画する Matplotlib ライブラリの関数です。この関数は多くの引数を取りますが、以下にリストされているそのうちの 3つについて説明します。

  • x: The position of the line on the x-axis
  • ymin:この値は 0 から 1 の間である必要があります。ここで、0 はプロットの下部を表し、1 はプロットの上部を表します。
  • ymax:この値は 0 から 1 の間である必要があります。ここで、0 はプロットの下部を表し、1 はプロットの上部を表します。

他の引数には、colorlabelmarkersnaptransformurlvisible などがあります。

この関数の使用方法を理解するには、次の例を参照してください。

例 1-単一の垂直線をプロットする

import random
import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([1, 2, 5, 6, 3, 11, 8, 5, 10, 11])
# Plotting a single vertical line
plt.axvline(x=5, color="green", label="Index 5")
plt.plot(x, y, color="red", label="Values")
plt.title("Plotting a single vertical line")
plt.xlabel("Indexes")
plt.ylabel("Values")
plt.legend()
plt.show()

出力:

matplotlib で単一の垂直線をプロットする

例 2-複数の垂直線をプロットする

import random
import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([1, 2, 5, 6, 3, 11, 8, 5, 10, 11])

for i in range(3):
    plt.axvline(
        x=random.randint(1, 10),
        color=np.random.rand(
            3,
        ),
    )  # Plotting a vertical line

plt.plot(x, y, color="red", label="Values")
plt.title("Plotting multiple vertical lines")
plt.xlabel("Indexes")
plt.ylabel("Values")
plt.legend()
plt.show()

出力:

matplotlib で複数の垂直線をプロットする

例 3-長さが変化する複数の直線

import random
import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([1, 2, 5, 6, 3, 11, 8, 5, 10, 11])
yMins = [1, 0.7, 0.5]
yMaxs = [0.1, 0.4, 0]
positions = [2, 4, 8]

for i in range(3):
    plt.axvline(
        x=positions[i],
        ymin=yMins[i],
        ymax=yMaxs[i],
        color=np.random.rand(
            3,
        ),
    )  # Plotting a vertical line

plt.plot(x, y, color="red", label="Values")
plt.title("Plotting a multiple vertical lines")
plt.xlabel("Indexes")
plt.ylabel("Values")
plt.legend()
plt.show()

出力:

matplotlib で可変長の複数の垂直線をプロットする

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Matplotlib Line