首页 > 解决方案 > 在 matplotlib 中将 colorbar 应用于轮廓的问题

问题描述

给定X_train与模型相关的数据bgmm,我有一个等高线图,如下所示。

x = np.linspace(4, 11)
y = np.linspace(6, 11)
X, Y = np.meshgrid(x, y)
XX = np.array([X.ravel(), Y.ravel()]).T
Z = -bgmm.score_samples(XX)
Z = Z.reshape(X.shape)

plt.style.use('seaborn-white')
CS = plt.contour(X, Y, Z, levels=np.logspace(0, 1, 5), cmap='RdGy')
plt.clabel(CS, inline=True, fontsize=8)
plt.imshow(Z, extent=[4, 11, 6, 11], origin='lower',
            cmap='RdGy', alpha=0.5)
CB = plt.colorbar()
plt.scatter(X_train[:, 0], X_train[:, 1], 0.8)
plt.show()

在此处输入图像描述

可以看到,颜色条的范围不正确。如果我改为考虑CB = plt.colorbar(CS),则范围会固定,但我会丢失颜色条的颜色:

在此处输入图像描述

那么,如何在不丢失颜色的情况下修复范围呢?

标签: matplotlib

解决方案


推荐阅读