2d散点图matplotlib背后的热图

时间:2017-05-19 02:17:51

标签: python matplotlib

我有一个数据矩阵X n x 2和相应的二进制标签数组y,说明第i个人是否是赢家。我试图创建一个散点图,其上面有一个热图,它显示了图上每个点的预测概率。这是我到目前为止的代码

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)都根据其预测的获胜概率给出颜色?

1 个答案:

答案 0 :(得分: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

相关问题