Matplotlibは、視覚化を作成するための強力なPythonライブラリです。プロットに水平線と垂直線を追加することで、データポイント、閾値、または関心領域を強調表示し、可読性を大幅に向上させることができます。この記事では、axhline
/axvline
とhlines
/vlines
を使用した、この実現のための2つの効果的な方法を示します。
目次
axhline
とaxvline
の使用
axhline
関数とaxvline
関数は、Matplotlibのaxesオブジェクトに直接、それぞれ単一の水平線と垂直線を簡単に追加する方法を提供します。これらの関数は、線がプロット全体に及ぶ必要がある場合に最適です。
import matplotlib.pyplot as plt
import numpy as np
# サンプルデータ
x = np.linspace(0, 10, 100)
y = np.sin(x)
# プロットの作成
fig, ax = plt.subplots()
ax.plot(x, y)
# y = 0.5に水平線を追加
ax.axhline(y=0.5, color='r', linestyle='--', linewidth=2)
# x = 5に垂直線を追加
ax.axvline(x=5, color='g', linestyle='-', linewidth=1)
# 外観のカスタマイズ(オプション)
ax.set_xlabel("X軸")
ax.set_ylabel("Y軸")
ax.set_title("axhline/axvlineを使用した水平線と垂直線")
plt.show()
このコードは正弦波を生成し、y = 0.5
に赤い破線の水平線、x = 5
に緑色の実線の垂直線を追加します。color
、linestyle
、linewidth
、alpha
(透明度)、label
(凡例用)などのパラメータを使用して、線のプロパティをカスタマイズできます。
hlines
とvlines
の使用
より高度な制御、特に複数の線を描画する場合や、axesの一部にしか及ばない線を描画する場合には、hlines
とvlines
の方が柔軟性が高くなります。これらを使用すると、水平線のy座標と垂直線のx座標を個別に指定できます。
import matplotlib.pyplot as plt
import numpy as np
# サンプルデータ
x = np.linspace(0, 10, 100)
y = np.sin(x)
# プロットの作成
fig, ax = plt.subplots()
ax.plot(x, y)
# 複数の水平線を追加
ax.hlines(y=[0, 0.5, 1], xmin=0, xmax=10, colors=['b', 'r', 'g'], linestyles=['-', '--', ':'])
# 複数の垂直線を追加
ax.vlines(x=[2, 7], ymin=0, ymax=1, colors=['k', 'm'], linewidths=[2, 1])
# 外観のカスタマイズ(オプション)
ax.set_xlabel("X軸")
ax.set_ylabel("Y軸")
ax.set_title("hlines/vlinesを使用した水平線と垂直線")
plt.show()
この例では、異なるy値でx範囲全体に3本の水平線を追加し、特定のx座標にymin=0
からymax=1
まで伸びる2本の垂直線を追加します。複数の線の指定にはリストを使用します。線の太さを制御するためにlinewidths
を使用していることに注意してください。
結論
axhline
/axvline
とhlines
/vlines
の両方が、Matplotlibのプロットを強化するための便利なツールです。axhline
/axvline
は、プロット全体に及ぶ単一の線にはよりシンプルですが、hlines
/vlines
は、複数の線や特定の開始点と終了点を持つ線に対してより柔軟性があります。最適な選択は、視覚化のニーズによって異なります。可読性を最適化するために、線のスタイルと色を調整してください。