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 に答える