matplotlibの散布図で連続的に色付けをする
matplotlibの散布図を連続的に色付けする方法のメモ.
ポイントとしては
1. cmapを用いて連続する実数をRGBの連続値に変換する
2. plt.scatter()
で提供されているfacecolors
やedgecolors
の引数を使う
の2つです.
(20/01/24 10:34追記)
コメントでもっと簡単な方法を教えていただき,下のコード例を修正しました.
@kochory さん、ありがとうございます!
コードの例
回帰問題用のデータセットBoston housingの低次元埋め込みと目的変数(今回の例では物件価格)を散布図で可視化しました.
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.manifold import TSNE
X, y = load_boston(return_X_y=True)
tsne = TSNE(n_components=2, random_state=0)
embX = tsne.fit_transform(X)
# 20/01/24 10:34 頂いたコメントをもとに修正
plt.scatter(embX[:, 0], embX[:, 1], c=y, cmap='coolwarm')
# 以下は追記前のコードです
# ポイント1: yをRGBAの配列に変換する
#cm = plt.get_cmap('coolwarm') # matplotlibのcolormapを取得
#normalized_y = (y -y.min()) / (y.max() - y.min()) # 目的変数yを0~1に正規化
#color_levels = (normalized_y * 256).astype(int) # yをさらに0~255に変換
#colors = [cm(cl) for cl in color_levels] # cm(cl)はRGBAのtupleを返す
# ポイント2: facecolorsの引数を指定する
#plt.scatter(embX[:, 0], embX[:, 1], s=10, facecolors=colors)
参考URL
Author And Source
この問題について(matplotlibの散布図で連続的に色付けをする), 我々は、より多くの情報をここで見つけました https://qiita.com/hyt-sasaki/items/d2efa575a361fd75ec3b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .