次のように垂直カラーバーを生成できます(簡略化):
import matplotlib.pyplot as plt
import matplotlib as mpl
plt.figure()
c_ax=plt.subplot(111)
cb = mpl.colorbar.ColorbarBase(c_ax,orientation='vertical')
plt.savefig('my_colorbar.png')
反対側の目盛りラベルを取得することは可能ですか?
ティックの位置はc_ax.yaxis.set_ticks_position()
を使用して切り替えることができます
だからあなたの例では:
import matplotlib.pyplot as plt
import matplotlib as mpl
plt.viridis()
fig=plt.figure()
c_ax=plt.subplot(199)
cb = mpl.colorbar.ColorbarBase(c_ax,orientation='vertical')
c_ax.yaxis.set_ticks_position('left')
plt.savefig('my_colorbar.png')
同様の方法でカラーバーラベルを移動することもできます。
c_ax.yaxis.set_label_position('left')
最後に、水平カラーバーがあり、目盛りとラベルを上に移動したい場合は、xaxis
で同等の関数を使用できます。
c_ax.xaxis.set_label_position('top')
c_ax.xaxis.set_ticks_position('top')
私も同じ問題を抱えていました。この状況は、カラーバーの軸を明示的に設定しているときにおそらく発生します。その場合、これらの軸のどちら側に目盛りとラベルを取得するかを簡単に指定できます。たとえば、imshowを使用してイメージを作成した場合
fig = plt.figure()
ax = plt.subplot(1, 1, 1)
im = ax.imshow(data)
この例では、inset_axesを使用して、カラーバーの軸を定義できます。
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
cbaxes = inset_axes(ax, width="7%", height="20%", loc=4)
次に、カラーバーを追加します
cb = fig.colorbar(im, cax=cbaxes, ticks=[vmin, vmax], orientation='vertical')
ティックの位置などを制御します...
cbaxes.yaxis.tick_left()