Matplotlib で任意の線を描く
    
    Suraj Joshi
    2023年1月30日
    
    Matplotlib
    Matplotlib Lines
    
- 
          
            matplotlib.pyplot.plot.plot()メソッドを用いて任意の線を描画する
- 
          
            Matplotlib hlines()とvlines()メソッドを用いた任意の線の描画
- 
          
            matplotlib.collections.LineCollectionを用いて任意の直線を描画する
 
このチュートリアルでは、matplotlib.pyplot.plot() メソッド、matplotlib.pyplot.vlines() メソッド、または matplotlib.pyplot.hlines() メソッドと matplotlib.collections.LineCollection を使って、Matplotlib で任意の線を描画する方法を説明します。
matplotlib.pyplot.plot.plot() メソッドを用いて任意の線を描画する
    
単純に matplotlib.pyplot.plot() メソッドを用いて線を描画することができます。(x1,y1) から始まり、(x2,y2) で終わる直線を描画する一般的な構文は以下の通りです。
plot([x1, x2], [y1, y2])
import matplotlib.pyplot as plt
plt.plot([3, 5], [1, 6], color="green")
plt.plot([0, 5], [0, 5], color="red")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Plot with 2 arbitrary Lines")
plt.show()
出力:

図中に任意の 2 本の線を描きます。緑の色で表される 1 本目の線は (3,1) から (5,6) まで伸び、赤の色で表される 2 本目の線は (0,0) から (5,5) まで伸びる。
Matplotlib hlines() と vlines() メソッドを用いた任意の線の描画
hlines() と vlines() メソッドを用いて任意の線を描画する一般的な構文は以下の通りです。
vlines(x, ymin, ymax)
hlines(y, xmin, xmax)
import matplotlib.pyplot as plt
plt.hlines(3, 2, 5, color="red")
plt.vlines(6, 1, 5, color="green")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Plot arbitrary Lines")
plt.show()
出力:

hlines() メソッドは赤色で水平線を描画します。vlines() メソッドは緑色で垂直線を描画します。
matplotlib.collections.LineCollection を用いて任意の直線を描画する
import matplotlib.pyplot as plt
from matplotlib import collections
line_1 = [(1, 10), (6, 9)]
line_2 = [(1, 7), (3, 6)]
collection_1_2 = collections.LineCollection([line_1, line_2], color=["red", "green"])
fig, axes = plt.subplots(1, 1)
axes.add_collection(collection_1_2)
axes.autoscale()
plt.show()
出力:

line_1 と line_2 から線のコレクションを作成し、そのコレクションをプロットに追加します。
        チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
    
著者: Suraj Joshi
    Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn