9

対数の imshow フィギュアがあり、カラーバーが作成されると、その軸ラベルと目盛りは対数になりますが、値の範囲が短い (0-50) ため、カラーバーは次のようになります。

ここに画像の説明を入力

代わりに、軸に沿って0、5、10、20、50の間隔で表示したいと思います(対数間隔)。

私はこれを機能させることができないようです。

助けてくれてありがとう。

4

1 に答える 1

15

LogFormatterクラスを使用して次のように設定labelOnlyBaseFalseます。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors
from matplotlib.ticker import LogFormatter 

A = np.random.rand(50,50)*50
plt.imshow(A, norm=matplotlib.colors.LogNorm())
formatter = LogFormatter(10, labelOnlyBase=False) 
cb = plt.colorbar(ticks=[1,5,10,20,50], format=formatter)
plt.show()
于 2014-12-07T23:29:21.110 に答える