One could generate a vertical colorbar like so(simplified):
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')
Resulting in something like this(rotated for space reasons):
Is it possible to get the ticks labels on the opposite side?
You can switch the position of the ticks using c_ax.yaxis.set_ticks_position()
So for your example:
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')
Note you can also move the colorbar label in a similar way:
c_ax.yaxis.set_label_position('left')
And finally, in case you have a horizontal colorbar, and want to move the ticks and labels to the top, you can use the equivalent function on the xaxis
:
c_ax.xaxis.set_label_position('top')
c_ax.xaxis.set_ticks_position('top')