2

デフォルトの「jet」マップでカラーバーを使用しており、それを「hexbin」で使用しています。私のビンには 0 から約 1500 の範囲のカウントがあります。問題は、いくつかの六角形のビンの最小値が 1 から 10 の間であるのに対し、いくつかのビンには数百のカウントがあることです。これは、jet カラーマップでは、0 から 10 の範囲がカラー 0 として表示されることを意味します。つまり、カウントが 0 のビンと見分けがつきません。それらの小さな値が表示されるようにしたいと思います。カラーマップに次のようなことをさせるにはどうすればよいですか: N 以上のビン値に「可視」、つまりカラーマップの 0 ビン値とは異なる値があることを確認してください。

ありがとう。

4

2 に答える 2

3

簡単な解決log(counts)策は、hexbin のカウントの代わりにプロットを試すことです。これにより、より高いカウントが圧縮され、より低いカウントが圧縮されないようにスケールが広がります。log(counts)ただし、視覚化されている値がそうではないことをどこかに置く必要があることに注意してくださいcounts

より良い方法は、使用しているカラー マップを変更することです。組み込みのマップは、多かれ少なかれ「0」の色から「1」の色に直線的に変化します。値が低いほど、値が高いほど色が広がるようにするには、非線形カラー マップが必要です。

これを行うにはmatplotlib.colors、特にmatplotlib.colors.LinearSegmentedColormap.from_list( http://matplotlib.sourceforge.net/api/colors_api.html#matplotlib.colors.LinearSegmentedColormap.from_list )を試すことができます。

基本的に、「0」と「1」の色 (青→赤など) とガンマ値を入力します。ガンマが 1.0 を超えると、スケールの下部で感度が向上します。

試していないが、次のような場合:

import matplotlib.colors as colors
# colourmap from green to red, biased towards the blue end.
# Try out different gammas > 1.0
cmap = colors.LinearSegmentedColormap.from_list('nameofcolormap',['g','r'],gamma=2.0)

# feed cmap into hexbin
hexbin( ...., cmap=cmap )
于 2011-12-11T06:25:50.590 に答える
0

また、mincnt最小数を hexbin に設定するオプションもあり、この数より少ないすべてのビンを空白のままにします。これにより、ジェットの配色でカウント 0 と 1 を簡単に区別できます。

hexbin( ...., mincnt=1)
于 2014-04-24T09:55:45.940 に答える