Python matplotlib散点图 - 一个散点图中的不同标记

时间:2017-04-20 19:29:29

标签: python matplotlib

我想显示一些观点。这是我的代码:

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会出错。

2 个答案:

答案 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