我有很多数据图像,例如下面的数据图像,其中我在右侧添加了一组新的轴,以强制颜色条与图像的大小相同。


彩条上的刻度太靠近,因此我想减少它们的数量。我试图这样做:

# Set up colorbar
divider = make_axes_locatable(plt.gca())
cax = divider.append_axes("right", size="5%", pad=0.05)
cax.yaxis.set_major_locator(plticker.LinearLocator(numticks=5))
cbar = plt.colorbar(im, cax=cax)
cbar.set_label(cbtitle, **cbkw)


我知道,通常,以这种方式重新格式化轴需要调用cbar.update_axis()来强制进行更新,但这似乎在这里不起作用。 cax是Axes对象,调用cbar.update_axis()也不执行任何操作。实际上,这两种策略以及不进行更新的操作都会产生上图。有人知道我如何减少滴答声吗?

最佳答案

您的示例代码包含许多在其外部定义的变量,因此很难看到您正在做的所有事情。但是关于设置cbar的刻度数,这对我有用:

fig, ax = plt.subplots()

im = ax.imshow(np.random.randn(10,10), interpolation='none')

divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
cbar = plt.colorbar(im, cax=cax, ticks=mpl.ticker.LinearLocator(numticks=3))




@hildensia,图像显示了将彩虹切成正方形并将它们随机放置在网格中的结果,所以抱歉,我真的需要'jet'cmap。 ;)你是对的,当然。

关于python - Matplotlib:更改附加轴的定位器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25062175/

10-12 17:03