如何为散点指定颜色

时间:2015-09-17 01:19:07

标签: python matplotlib scatter colormap

我尝试根据与x或y值无关的值为matplotlib散点图中的点指定颜色。例如,每个点可以是3个值中的一个,因此我想要3个不同的颜色用于3个可能的值。所以,有3个数组:x_arr,y_arr和val_arr,其中val_arr的每个元素可以是1,2或3.看起来像我见过的大多数例子都有基于数组中位置的颜色,而不是基于独立的价值。

为了在3种点之间获得高对比度,以便在有很多点的情况下获得更好的可见性,我已经做过类似的事情:

 pt_color = plt.cm.Dark2(np.linspace(0, 1, 3))

我无法弄清楚如何为每个值元素指定正确的颜色。从概念上讲,我想做这样的事情,

gr.scatter(x_arr, y_arr, c=val_arr, cmap=pt_color)

其中val_arr的每个元素使用pt_color映射到一个颜色,但上面的方法不起作用(我得到一个TypeError,因为pt_color是不可用的类型)。

任何指针都表示赞赏。

1 个答案:

答案 0 :(得分:1)

import matplotlib.pyplot as plt
from numpy.random import random, randint

X = random(10)
Y = random(10)
val_arr = randint(low=0, high=3, size=10)
plt.scatter(X, Y, c=val_arr,
            s=40)
plt.colorbar()
plt.show()

将val_arr值与默认的colormap隔开,colorbar解释了val_arr颜色的含义。

enter image description here