我試圖用顏色和正確的標(biāo)簽來表示預(yù)測,作為虹膜數(shù)據(jù)集的標(biāo)記。這是我到目前為止所擁有的: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)我不確定為什么顏色會迭代而標(biāo)記不會,但是有沒有辦法為每個標(biāo)記分配一個特定的值,比如顏色?當(dāng)我只輸入 y 的數(shù)值時,它也會失敗。它返回的代碼是:無法識別的標(biā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', '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貢獻(xiàn)2003條經(jīng)驗 獲得超2個贊
您可以像下面這樣修改代碼以獲得所需的結(jié)果:
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
提交
取消