通过matplotlib.ticker.MaxNLocator(nbins=n)来设置colorbar上的刻度值个数
import matplotlib.ticker as tickerfig = 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_locatorcb1.update_ticks()plt.show()
但这样colorbar上的刻度值不是从最大值和最小值开始和结束,如果想将colorbar上的刻度值从最大值和最小值开始和结束,可以手动设置colorbar上显示的刻度值:
import matplotlib.ticker as tickerfig = 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_locatorcb1.set_ticks([np.min(data), 0.25,0.5, 0.75, np.max(data)])cb1.update_ticks()plt.show()