MatplotlibでScientific notationを使った時のcolorbarの上の部分の文字をカスタマイズ
Matplotlibの目盛操作はFormatterを使ってカスタマイズできます。中でもScalarFormatterというものにはscientific notationという機能があります。これはa x 10bという表記だと目盛にはaを表示させて10bは端の方に書いておくというものです。言葉で説明すると面倒くさいので図を出します。
デフォルトで勝手にそうなってるかもしれませんが、これはScalarFormatterのset_scientificでON/OFFを切り替えられます。 例えば上の図を出したソースはこれです。、
import numpy as np import pylab as pl x = np.linspace(0,1) y = np.linspace(0,2) x,y = np.meshgrid(x,y) z = 1e-8*(x**2 + y**2) pl.contourf(x,y,z) cbar = pl.colorbar() cbar.ax.tick_params(labelsize=12) cbar.formatter.set_scientific(True) pl.show()
上で出した図中の青い枠線で囲った1e-8という文字を大きくしたり、カスタマイズしたいのです。次のように修正することで変更可能です。
import numpy as np import pylab as pl x = np.linspace(0,1) y = np.linspace(0,2) x,y = np.meshgrid(x,y) z = 1e-8*(x**2 + y**2) pl.contourf(x,y,z) cbar = pl.colorbar() cbar.ax.tick_params(labelsize=12) cbar.formatter.set_scientific(True) text = cbar.ax.yaxis.get_offset_text() # offset_textが操作対象 text.set_fontsize(28) text.set_color("blue") pl.show()
こういうの名前がわからないので調べにくい。