Matplotlib:如何在没有循环的情况下绘制彩色点?

时间:2015-08-31 15:13:07

标签: python numpy matplotlib

我正在绘制一个2d点的numpy矩阵,我可以这样做:

xs = np.array([[0,0], [1,0], [2,2]])

for x in xs:
    plt.plot(x[0], x[1], 'o', color="red")

或者,如果没有循环,我可以这样做:

xs = np.array([[0,0], [1,0], [2,2]])
plt.plot(xs[:,0], xs[:,1], 'o', color="red")

现在假设我还有一组相应的颜色:     clrs = [0,1,0]     mycolors = ['red','black']

因此0red相关联,1black相关联。我可以使用以下方法在循环中绘制彩色点:

xs = np.array([[0,0], [1,0], [2,2]])
clrs = [0, 1, 0]
mycolors = ['red', 'black']

for x,c in zip(xs,clrs):
    plt.plot(x[0], x[1], 'o', color=mycolors[c])

如果没有循环,我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您可以使用plt.scatter,并指定颜色矢量:

plt.scatter(xs[:,0], xs[:,1], c=list('rk')) #r is red, k is black

enter image description here