散布図のラベル

ScatterPlot colouring and labelling with Clustering in Python – StackOverflow

単に凡例という意味で言っているのか,文字通りプロットにラベルを付けたいのか.
(例えば,クラスタのセントロイドを表すプロットにラベル付けしたいとか)

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets.samples_generator import make_blobs
from sklearn.metrics.pairwise import pairwise_distances_argmin

sns.set_style('darkgrid')

centers = [[-1, 0], [2, 0], [3, 6]]
n_clusters = len(centers)
X, labels_true = make_blobs(n_samples=300, centers=centers, cluster_std=0.7)

k_means = KMeans(n_clusters=3)
k_means.fit(X)

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111)
ax.scatter(X[:, 0], X[:, 1], c=k_means.labels_, cmap=sns.dark_palette('palegreen', as_cmap=True))

FireShot Capture 287 - JupyterLab Alpha Preview - http___localhost_8888_lab

k_means_cluster_centers = np.sort(k_means.cluster_centers_, axis=0)
k_means_labels = pairwise_distances_argmin(X, k_means_cluster_centers)

colors = [sns.xkcd_rgb['pale red'], sns.xkcd_rgb['medium green'], sns.xkcd_rgb['denim blue']]

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111)
for k, col in zip(range(n_clusters), colors):
    my_members = k_means_labels == k
    cluster_center = k_means_cluster_centers[k]
    ax.scatter(X[my_members, 0], X[my_members, 1], c=col, marker='.')
    ax.plot(cluster_center[0], cluster_center[1], 'o', label=k,
            markerfacecolor=col, markeredgecolor='k', markersize=6)
ax.set_title('KMeans')
ax.legend()

FireShot Capture 288 - JupyterLab Alpha Preview - http___localhost_8888_lab

k_means_cluster_centers = np.sort(k_means.cluster_centers_, axis=0)
k_means_labels = pairwise_distances_argmin(X, k_means_cluster_centers)

colors = [sns.xkcd_rgb['pale red'], sns.xkcd_rgb['medium green'], sns.xkcd_rgb['denim blue']]

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111)
for k, col in zip(range(n_clusters), colors):
    my_members = k_means_labels == k
    cluster_center = k_means_cluster_centers[k]
    ax.scatter(X[my_members, 0], X[my_members, 1], c=col, marker='.')
    ax.plot(cluster_center[0], cluster_center[1], 'o', label=k,
            markerfacecolor=col, markeredgecolor='k', markersize=6)
    ax.text(cluster_center[0], cluster_center[1], k, fontsize=30, color='magenta')
ax.set_title('KMeans')

FireShot Capture 289 - JupyterLab Alpha Preview - http___localhost_8888_lab

広告
カテゴリー: 未分類 パーマリンク

散布図のラベル への2件のフィードバック

  1. ピンバック: 全然obviouslyじゃない…… | 粉末@それは風のように (日記)

  2. ピンバック: Spectral Clustering/Affinity Propagation/KMeans | 粉末@それは風のように (日記)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中