0

我有数据:

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 结束,这是我不想要的。我只想缩放点的大小,而不是那里分配的值。怎么做?

4

1 回答 1

1

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

sc = pyplot.scatter(pos_x, pos_y, c=values, s=values_scaled)
于 2012-09-28T12:20:49.923 回答