2017-05-19 14 views
0

Xの行列はn x 2であり、対応する2進ラベルの配列yはi番目の人物が勝者かどうかを表しています。私はそれの上に勝者であるグラフ上の各ポイントの予測された確率を示すヒートマップを持つ散布図を作成しようとしています。ここでは、予測確率が高く、それが低い場合より青いここで基本的に、私は背景がより赤くなりたい、これまでヒートマップ2次元散布行列matplotlib

import matplotlib.pyplot as plt 
from sklearn.externals import joblib 
from sklearn.linear_model import LogisticRegression 

X = joblib.load('X.pkl') 
y = joblib.load('y.pkl') 
lr = LogisticRegression() 
lr.fit(X, y) 
plt.scatter(X[y == 1, 0], X[y == 1, 1], color='r', label='winners', s=1) 
plt.scatter(X[y == 0, 0], X[y == 0, 1], color='b', label='losers', s=1) 
plt.legend() 
# Want to add a heatmap in the background for predicted probabilities here 
plt.show() 

私のコードです。私はlr.predict_proba(X)[:0]を使って点の集合の確率を得ることができます。

グラフの各点(x1、x2)に予想される予想確率に基づいて色が与えられるように背景をどのように色付けするのですか?

+0

はあなたを持っていますこの[質問](http://stackoverflow.com/questions/2369492/generate-a-heatmap-in-matplotlib-using-a-scatter-data-set)の解決策をお読みください。ヒートマップとしての散乱は、あなたが望むのと同じではないかもしれませんが、これはあなたを助けるかもしれません。 –

答えて

0

何がポイントのC値を指定している探している、とカラーマップ:

props = lr.predict_proba(X) 
plt.scatter(X[y == 1, 0], X[y == 1, 1], c=props[:, 1], cmap='Reds', label='winners', s=1) 
plt.scatter(X[y == 0, 0], X[y == 0, 1], c=props[:, 0], cmap='Blues', label='losers', s=1) 

あなたが別のカラーマップを使用する場合は、完全なリストについては、このリンクをチェック: https://matplotlib.org/examples/color/colormaps_reference.html

+0

これはほとんど私のために働くが、私は質問で少し不明だった。グラフ上のすべての単一点に色を割り当てる(つまり、プロット全体が色付けされる)ようにします。 – michaelsnowden

+0

plt.pcolormesh(x、y、props)を試すことができます。あなたの意図に応じてあなたの配列を再形成する必要があります... –