2017-04-20 120 views
0

我想顯示一些點。這裏是我的代碼:python matplotlib scatter - 在一個分散的不同標記

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提供了一個錯誤。

回答

1

您需要爲每個標記使用一個散點圖。

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]) 
2

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='+') 
+0

它的工作原理,謝謝! –

相關問題