我想显示一些观点。这是我的代码:
plt.scatter(y[:,0],y[:,1],c=col)
plt.show()
而col
我有:
Col: [1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0
1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0]
所以我有两种不同颜色的分数。但我也希望有两种不同的标记。我该怎么做? markers=col
会出错。
答案 0 :(得分:7)
Matplotlib在一次分散调用中不支持不同的标记。您必须使用两个不同的scatter
来电;例如:
plt.scatter(y[col == 0, 0], y[col == 0, 1], marker='o')
plt.scatter(y[col == 1, 0], y[col == 1, 1], marker='+')
答案 1 :(得分:2)
您可以为每个标记使用一个散点图。
markers = ["s","o"]
for i, c in enumerate(np.unique(col)):
plt.scatter(y[:,0][col==c],y[:,1][col==c],c=col[col==c], marker=markers[i])
有关在单个散点图中使用多个标记的方法,请参阅this answer。