matplotlib 绘制kmeans聚类图,每个聚类带有图例和标记,并带有颜色

qij5mzcb  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(179)

我想为K-均值聚类结果做一个图,每个聚类都有不同的颜色、不同的标记和图例。您能建议一个脚本来绘制这个图吗?
df是特征x、y、z的数据集,并且不同的kmeans结果以如下方式作为特征:

df['c2']=kmeans2_lables_
df['c3']=kmeans3_lables_

我试着使用这个代码s远,但它是不工作,没有标记。

def draw_figures(clust_col):
    lables={2:{0:'Low',1:'High'},3:{0:'Medium',1:'Low',2:'High'},5:{0:'Very High',1:'Very Low',2:'High',3:'Medium',4:'Low'}}
    cdict = {0: 'r', 1: 'b', 2: 'g',3:'c',4:'y'}
    #group=range(clust_col)
    fig, ax = plt.subplots()
    for g in np.unique(df[clust_col]):
        ix = np.where(df[clust_col] == g)
        ax.scatter(df[ix]['f'], df[ix]['avg'], c = cdict[g], label = labels[clust_col][g], s = 100)
    ax.legend()
    plt.show()
wqnecbli

wqnecbli1#

我已经接近你所问的与以下代码:

cmap = matplotlib.cm.get_cmap('Dark2', 4)

plt.scatter(X[:,0], X[:,1], alpha=.4, c=kmeans.labels_, cmap=cmap)
plt.axis('equal')
plt.colorbar(ticks=[])
plt.show()

检查绘制结果here
我所做的是选择一个离散的色彩Map表与cmap = matplotlib.cm.get_cmap('Dark2', 4),然后我指示plotly使用它添加cmap=cmapplt.scatter
我用plt.colorbar添加了颜色条,但用ticks=[]删除了令人困惑的刻度。
在寻找类似的解决方案时,我发现了这个:matplotlib scatter plot with color label and legend specified by c option,可能也会对您有所帮助。

相关问题