Matplotlib:更改附加轴的定位器

时间:2014-07-31 14:54:38

标签: python matplotlib

我有许多数据图像,如下图所示,其中我向右添加了一组新轴,以强制颜色条与图像的大小相同。 enter image description here

颜色条上的刻度太靠近了,所以我想减少它们的数量。我试图这样做:

# 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()也没有做任何事情。实际上,这两种策略以及更新都会导致上面的图像。有人知道如何减少蜱虫吗?

1 个答案:

答案 0 :(得分:2)

您的示例代码包含许多在其外部定义的变量,因此很难看到您正在执行的所有操作。但是关于设置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))

enter image description here

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