我想为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()
1条答案
按热度按时间wqnecbli1#
我已经接近你所问的与以下代码:
检查绘制结果here
我所做的是选择一个离散的色彩Map表与
cmap = matplotlib.cm.get_cmap('Dark2', 4)
,然后我指示plotly使用它添加cmap=cmap
到plt.scatter
。我用
plt.colorbar
添加了颜色条,但用ticks=[]
删除了令人困惑的刻度。在寻找类似的解决方案时,我发现了这个:matplotlib scatter plot with color label and legend specified by c option,可能也会对您有所帮助。