matplotlib:scatter和colorbar值

时间:2012-09-28 12:13:52

标签: python matplotlib

我有数据:

values = np.array( [0,1,2,3,4,5] )

我想将values标注为pyplot.scatter,其大小和颜色不同。此外,我想调整点的大小,以便最小的点可见。

如果我这样做:

sc = pyplot.scatter ( pos_x, pos_y, values )
pyplot.colorbar( sc )

然后我得到正确的值和颜色,但最小的点太小。现在,如果我这样做:

values_scaled = (values * 2 + 1)
sc = pyplot.scatter ( pos_x, pos_y, values_scaled )
pyplot.colorbar( sc )

然后点的大小可以接受(虽然有点假)但是颜色条图例从1开始到11结束,这是我不想要的。我想缩放点的尺寸,而不是那里分配的。怎么做?

1 个答案:

答案 0 :(得分:1)

matplotlib.pyplot.scatter函数采用可选的关键字参数s,这是“点的大小^ 2。它是一个标量或与x和y长度相同的数组” 。因此,只需将values_scaled数组作为此参数的值传递,并将颜色数据(可选的c关键字参数)保留为values,即:

sc = pyplot.scatter(pos_x, pos_y, c=values, s=values_scaled)