通过matplotlib.ticker.MaxNLocator(nbins=n)来设置colorbar上的刻度值个数
import matplotlib.ticker as ticker
fig = plt.figure()
ax = fig.gca()
im = ax.imshow(np.random.random([10, 10]))
cb1 = plt.colorbar(im, fraction=0.03, pad=0.05)
tick_locator = ticker.MaxNLocator(nbins=4) # colorbar上的刻度值个数
cb1.locator = tick_locator
cb1.update_ticks()
plt.show()
但这样colorbar上的刻度值不是从最大值和最小值开始和结束,如果想将colorbar上的刻度值从最大值和最小值开始和结束,可以手动设置colorbar上显示的刻度值:
import matplotlib.ticker as ticker
fig = plt.figure()
ax = fig.gca()
data = np.random.random([10, 10])
im = ax.imshow(data)
cb1 = plt.colorbar(im, fraction=0.03, pad=0.05)
tick_locator = ticker.MaxNLocator(nbins=5) # colorbar上的刻度值个数
cb1.locator = tick_locator
cb1.set_ticks([np.min(data), 0.25,0.5, 0.75, np.max(data)])
cb1.update_ticks()
plt.show()