matplotlibは便利なんですが、何でもできる反面、1つの事にたいして、やり方が複数あるような気がして、その点はについては、Python的では無いという感じがします。(Pythonはひとつのことに対する実現方法をひとつにすることで、全体の分かり易さを実現しています。)
というわけで、pandas.DataFrameに格納されたデータをヒートマップにするコードを貼っておきます。本体とcolorbarを描く領域の位置と大きさをfig.add_axesで微妙に調整しています。今はダミーですが、実際は行の名前の長さなどで調整すると良いかと思います。
fig = pylab.figure(figsize=(16,9))
ax1 = fig.add_axes([0.07,0.2,0.85,.6])
im = ax1.matshow(buff,vmin=-2.0,vmax=2.0,aspect='auto')
ax1.set_yticks(range(len(buff)))
ax1.set_yticklabels(['name_0','name_1','name_2'],size='large')
axcolor = fig.add_axes([0.94,0.4,0.02,0.2])
pylab.colorbar(im, cax=axcolor)
fig.show()
出力例です。
スポンサーサイト