我试图用颜色和正确的标签来表示预测,作为虹膜数据集的标记。这是我到目前为止所拥有的:from sklearn.mixture import GMMimport pandas as pdfrom sklearn import datasetsimport matplotlib.pyplot as pltimport itertoolsiris = datasets.load_iris()x = iris.datay = iris.targetgmm = GMM(n_components=3).fit(x)labels = gmm.predict(x)fig, axes = plt.subplots(4, 4)Superman = iris.feature_namesmarkers = ["o" , "s" , "D"]Mi=[]for i in range(150): Mi.append(markers[y[i]])for i in range(4): for j in range(4): if(i != j): axes[i, j].scatter(x[:, i], x[:, j], c=labels, marker = Mi, s=40, cmap='viridis') else: axes[i,j].text(0.15, 0.3, Superman[i], fontsize = 8)我不确定为什么颜色会迭代而标记不会,但是有没有办法为每个标记分配一个特定的值,比如颜色?当我只输入 y 的数值时,它也会失败。它返回的代码是:无法识别的标记样式 ['o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o ', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', “o”、“o”、“o”、“o”、“o”、“o”、“o”、“o”、“o”、“o”、“o”、“o”、“o” ', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's ', 's', 's','s', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's ', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 'D', 'D ', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', “D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D” ', 'D', 'D', 'D',“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D”、“D” ', 'D', 'D', 'D', 'D', 'D', 'D', 'D']
2 回答
湖上湖
TA贡献2003条经验 获得超2个赞
您可以像下面这样修改代码以获得所需的结果:
markers = ["o" , "s" , "D"]
colors = ["red", "green", "blue"]
for i in range(4):
for j in range(4):
for k in range(x.shape[0]):
if(i != j):
axes[i, j].scatter(x[k, i], x[k, j], color=colors[labels[k]], marker = markers[y[k]], s=40, cmap='viridis')
else:
axes[i,j].text(0.15, 0.3, Superman[i], fontsize = 8)
添加回答
举报
0/150
提交
取消