使用列表确定matplotlib颜色

时间:2017-11-02 20:19:36

标签: python matplotlib colors

我正在使用matplotlib创建一个基本程序,它会绘制大量的点,并计算一个值来为这些点着色。我的问题是,随着点数变得非常大,通过for循环单独绘制每个点所花费的时间也变得非常大。有什么方法可以使用一个绘图语句并指定一个列表来使用每个单独的颜色的颜色?举个例子, 目前的方法:

colours = [(1,0,0),(0,1,0),(0,1,1)] #The length of these lists is usual in the thousands
x = [0,1,2]
y = [2,1,0]

for i in range(len(colours)):
    plot([x[i]],[y[i]],'o', color = colours[i])

而我想要使用的更像是:

plot(x,y,'o', color=colours)

每个点使用每种颜色。有没有比for循环更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

您不想使用plot,而是使用scatter

import matplotlib.pyplot as plt

colours = [(1,0,0),(0,1,0),(0,1,1)] 
x = [0,1,2]
y = [2,1,0]

plt.scatter(x,y, c=colours)

plt.show()

enter image description here