matplotlib 在散点图中将颜色与数字关联

gupuwyp2  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(106)

我正在使用sklearn基于一些零售数据做一个kmeans聚类。
我们在后台使用这个集群来细分客户(例如,蓝色客户很好,绿色客户有这样那样的需求,等等)。
所示数据点的颜色不同,具体取决于客户已被放入4个群集中的哪一个。但是我找不到一种方法来直接推断哪个颜色是哪个段号(或者如何强制某些段号是某种颜色)。
c=y是它使用y的值(即观察的预测片段)来选择颜色的地方。有4个部分。我只是不知道这四个中的哪一个Map到哪种颜色!
有人可以请建议我如何添加一个传说,或强迫自己的颜色?

kmeans=kmeans.fit(X)
y=kmeans.predict(X)

fig = plt.figure()
ax = Axes3D(fig)
ax.view_init(30)
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y)
ax.set_xlabel(vx)
ax.set_ylabel(vy)
ax.set_zlabel(vz)

4xy9mtcn

4xy9mtcn1#

你需要从散点图colorbar返回一个句柄

cm = ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y)
plt.colorbar(cm)

作为一个最小的例子

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

X = np.random.randn(100,3)
y = np.random.randn(100)

fig = plt.figure()
ax = Axes3D(fig)
ax.view_init(30)
cm = ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y)
plt.colorbar(cm)
plt.show()

相关问题