Matplotlib で散布図の点を線で結ぶ方法
Suraj Joshi
2023年1月30日
-
scatter()
とplot()
の両方を呼び出した後、show()
を呼び出する -
線種属性を持つ
matplotlib.pyplot.plot()
関数 -
描画順序を変更するキーワード
zorder
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)
を呼び出し、x
と y
を 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)
plt.plot(x, y)
plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
figure.tight_layout()
出力:
線種属性を持つ 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()
出力:
描画順序を変更するキーワード zorder
キーワード zorder
を使用して、図の描画順序を設定できます。plot
と 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=1)
plt.plot(x, y, color="b", zorder=2)
plt.title("Connected Scatterplot points with line")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
出力:
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()
出力:
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn