web-dev-qa-db-ja.com

matplotlibカラーバーのトップラベル

デフォルトでは、matplotlibはカラーバーラベルを垂直カラーバーと並べて配置します。ラベルをカラーバーの上に配置するための最良の方法は何ですか?現在、私のソリューションでは、ラベルのサイズに応じてlabelpadyの値を調整する必要があります。

import numpy as np
import matplotlib.pylab as plt 

dat = np.random.randn(10,10)
plt.imshow(dat, interpolation='none')

clb = plt.colorbar()
clb.set_label('label', labelpad=-40, y=1.05, rotation=0)

plt.show()

colorbar top label

これを行うためのより良い、より一般的な方法はありますか?

24
Vlas Sokolov

title(長軸に沿って表示)ではなく、カラーバー軸(軸の上に表示)のlabelを設定できます。カラーバーのAxesにアクセスするには、clb.ax。その後、 set_title 、他のAxesインスタンスと同じ方法で。

例えば:

import numpy as np
import matplotlib.pylab as plt 

dat = np.random.randn(10,10)
plt.imshow(dat, interpolation='none')

clb = plt.colorbar()
clb.ax.set_title('This is a title')

plt.show()

enter image description here

38
tmdavison