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

  1. scatter()plot() の両方を呼び出した後、show() を呼び出します
  2. 線種属性を持つ matplotlib.pyplot.plot() 関数
  3. 描画順序を変更するキーワード 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) を呼び出し、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 を使用して線で接続された散布図ポイント

関連記事 - Matplotlib Scatter

  • Matplotlib で x、y 座標のリストをプロットする方法
  • comments powered by Disqus