Matplotlib で散布図の点を線で結ぶ方法

  1. scatter()plot() の両方を呼び出した後、show() を呼び出する
  2. 線種属性を持つ matplotlib.pyplot.plot() 関数
  3. 描画順序を変更するキーワード zorder
Matplotlib で散布図の点を線で結ぶ方法

scatter()plot() の両方を呼び出した後で show() を呼び出し、line 属性と point 属性を指定して plot() を呼び出し、次を使用して、scatter プロットポイントを線に接続できます。描画順序を割り当てるキーワード zorder

scatter()plot() の両方を呼び出した後、show() を呼び出する

x 座標のシーケンスとして x を、y 座標のシーケンスとして y を指定した matplotlib.pyplot.scatter(x, y) は、点の散布図を作成します。これらの散布図のポイントを順番に接続するには、matplotlib.pyplot.plot(x, y) を呼び出し、xyscatter() 関数に渡されるものと同じに保ちます。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.scatter(x, y)
plt.plot(x, y)
plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
figure.tight_layout()

出力:

line_1.png で接続された散布図ポイント

線種属性を持つ matplotlib.pyplot.plot() 関数

linestyle 属性とともに単に matplotlib.pyplot.plot() 関数を呼び出すだけで、scatterplot ポイントをラインに接続することもできます。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.plot(x, y, linestyle="solid", color="blue")
plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
figure.tight_layout()

出力:

線種と色のパラメーターを使用して、散布図の点を線で接続

同様に、他のラインスタイルも試すことができます

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.plot(x, y, "xb-")
plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()

出力:

linestyle と color parameters_blue を使用して、散布図の点を線で接続

描画順序を変更するキーワード zorder

キーワード zorder を使用して、図の描画順序を設定できます。plotscatter に異なる順序を割り当て、順序を逆にして異なる描画順序の動作を示します。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.scatter(x, y, color="r", zorder=1)
plt.plot(x, y, color="b", zorder=2)

plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")

plt.show()

出力:

zorder を使用して線で接続された散布図ポイント

plot() の順序は 2 で、scatter() の順序よりも大きいため、散布図は線グラフの上にあります。

順序を逆にすると、折れ線グラフは散布図の上に表示されます。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 50)
y = np.sin(2 * np.pi * x)

plt.scatter(x, y, color="r", zorder=2)
plt.plot(x, y, color="b", zorder=1)

plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")

plt.show()

出力:

zorder 1 を使用して線で接続された散布図ポイント

チュートリアルを楽しんでいますか? <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 avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Matplotlib Scatter