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

Suraj Joshi 2023年1月30日
  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 を使用して線で接続された散布図ポイント

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

関連記事 - Matplotlib Scatter