【发布时间】:2021-08-11 22:05:46
【问题描述】:
我想根据标签的不同显示两种颜色。具体来说,当 label = 2 时,点颜色为黑色,其余点遵循 cmap ='Dark2'。我只有一个简单的想法,将点(label = 2)再次重叠,这样的代码,
import matplotlib.pyplot as plt
from sklearn import datasets
from collections import Counter
iris = datasets.load_iris()
X = iris.data
y = iris.target
df = pd.DataFrame(X, columns = iris.feature_names)
fig, ax = plt.subplots(figsize=(12,8))
points = ax.scatter(df.values[:,0],
df.values[:,1],
c = y,
cmap='Dark2') #others is follow this cmap
for i in range (len(y)):
if y[i] == 2:
ax.scatter(df.values[i,0],df.values[i,1], c = 'k') #when label = 2,points color is black
handles, _ = points.legend_elements()
labels =sorted([f'{item}: {count}' for item, count in Counter(y).items()])
ax.legend(handles, labels, loc = "lower right",title = 'clusters')
plt.show()
【问题讨论】:
-
现在的问题是它显示错误“c”参数有 555 个元素,这对于使用大小为 555 的“x”、大小为 555 的“y”是不可接受的。在“cmap”行中= 'Dark2' 当我在我的实际代码中更正时,我确定它在数据集中是否太长,因此它无法将标签识别为颜色
标签: python python-3.x matplotlib