Pythonでクラスタリング結果の散布図を作成する方法【matplotlib活用】
Pythonでクラスタリング結果を散布図として可視化するには、matplotlibとnumpyを組み合わせるのが一般的です。この記事では、データポイントをクラスタごとに色分けし、クラスタ中心を別のマーカーで表示する基本的な手法を解説します。
実装の手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- numpyを使って、x座標・y座標のデータポイント、各点のクラスタラベル、クラスタ中心を作成します。
- 新しいfigureオブジェクトを作成します(既存のfigureがある場合はそれをアクティブにします)。
- 現在のfigureにサブプロットを追加します。
- scatter()メソッドでデータポイントをプロットします。
c引数にクラスタラベルを渡すことで、クラスタごとに自動的に色分けされます。 - クラスタ中心のデータを反復処理し、scatter()メソッドで赤色の「+」マーカーを配置します。
- show()メソッドで図を画面に表示します。
コード例
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True x = np.random.randn(10) y = np.random.randn(10) Cluster = np.array([0, 1, 1, 1, 3, 2, 2, 3, 0, 2]) centers = np.random.randn(4, 2) fig = plt.figure() ax = fig.add_subplot(111) scatter = ax.scatter(x, y, c=Cluster, s=50) for i, j in centers: ax.scatter(i, j, s=50, c='red', marker='+') plt.show()
コードのポイント
- c=Cluster:各データポイントが属するクラスタのラベル配列を渡すことで、クラスタごとに異なる色で描画されます。
- s=50:マーカーのサイズを指定しています。値を大きくすると点が大きく表示されます。
- marker='+' と c='red':クラスタ中心を目立たせるために、赤色の十字型マーカーを使用しています。
- np.random.randn():正規分布に従う乱数を生成しており、ここではデモ用のダミーデータとして利用しています。
出力結果
上記のコードを実行すると、クラスタごとに色分けされた散布図と、その中心位置を示す赤い「+」マーカーが表示されます。


実際のクラスタリング分析では、K-meansなどのアルゴリズムで求めたクラスタラベルと重心を、このコードのClusterとcentersに置き換えるだけで、同じように可視化できます。
-
【Python・Matplotlib】散布図に線を重ねて描画(オーバープロット)する方法
PythonのMatplotlibでは、scatter()メソッドでデータポイントの散布図を作成した後、plot()メソッドを使うことで、その散布図の上に自由に線を重ねて描画(オーバープロット)できます。回帰直線や基準線を可視化したい場合などに非常に便利なテクニックです。 実装の手順 figure()メソッドを使って、サイズ(4, 3)の新しい図を作成するか、既存の図をアクティブにします。 plt.axes()で現在の図に軸を追加し、それをカレントのAxesとして取得します。 scatter()メソッドで散布図のポイントを描画します。 ax.plot()メソッドで線を描画し、散布図の上に重ね
-
Googleスプレッドシートで散布図を作成・カスタマイズする方法
散布図は、2つの異なるデータセットを視覚的に比較・分析できる便利なツールで、データ分析を行う方にとって欠かせない存在です。例えば、複数の営業チームの売上成績を比較する際に散布図を使えば、どのチームが最も好成績(あるいは最も伸び悩んでいる)のかをひと目で把握できます。Excelでも散布図は作成できますが、無料で利用できるGoogleスプレッドシートを使えば、コストをかけずに同じことが可能です。この記事では、Googleスプレッドシートで散布図を作成する基本的な手順と、作成後のカスタマイズ方法について詳しく解説します。Googleスプレッドシートで散布図を作成する手順散布図とは、その名の通り、グラ