I want to set the colorbar with no ticks in any form. I've searched and set the tick parameter at two places. However, still there are some ticks at right boarder.
cb = mpl.colorbar.ColorbarBase(ax2, cmap=cmap, norm=norm, spacing='proportional', boundaries=bounds, format='%.1f')
ax2.set_xlabel('t', size=12)
cb.ax.tick_params(size=0) # these two lines are my searching effort
cb.set_ticks([])
plt.show()
Edit
Here is a self contained code, still has tiny ticks.
fig, ax = plt.subplots(1, 1, figsize=(0.05, 6))
tmax=5
tmin=-5
color_num=6
bounds = np.linspace(tmin, tmax, color_num+1)
norm = mpl.colors.BoundaryNorm(bounds, color_num)
cmap = plt.cm.tab20
cmaplist = [cmap(i) for i in range(color_num)]
cmap = mpl.colors.LinearSegmentedColormap.from_list('custom map', cmaplist, color_num)
cb = mpl.colorbar.ColorbarBase(ax, cmap=cmap, norm=norm, spacing='proportional')
cb.ax.tick_params(size=0) # these two lines are my searching effort
cb.set_ticks([])
plt.show()



It looks like the tiny ticks are generated by
cb.set_ticks([])when no label is specified (I am usingmatplotlib 3.7.3).Though it is more a workaround rather than a solution, one could hide the ticks setting the
Axes.tick_params. Indeed, one can minimize the ticks and label sizes, and set them to the same color of the figure background, so that they are not visible anymore.To do so:
which results in