我正在尝试使用颜色条来标记使用 imshow 绘制的离散编码值。boundaries
我可以使用and关键字来实现我想要的颜色values
条,这使得颜色条的最大值实际上比正在绘制的数据的最大值大 1。
现在我希望刻度位于颜色栏中每个颜色范围的中间,但无法为颜色栏中最大的颜色块指定刻度位置,似乎是因为它超出了数据值限制。
这是一个快速的代码块来演示这个问题:
data = np.tile(np.arange(4), 2)
fig = plt.figure()
ax = fig.add_subplot(121)
ax.imshow(data[None], aspect='auto')
cax = fig.add_subplot(122)
cbar = fig.colorbar(ax.images[0], cax=cax, boundaries=[0,1,2,3,4], values=[0,1,2,3])
cbar.set_ticks([.5, 1.5, 2.5, 3.5])
cbar.set_ticklabels(['one', 'two', 'three', 'four'])
请注意“四”应该在哪里的缺失勾号。这样做的正确方法是什么?