我有数据:
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结束,这是我不想要的。我想缩放点的尺寸,而不是那里分配的值。怎么做?
答案 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)