向matplotlib colorbar添加ticks

时间:2016-02-27 00:31:37

标签: python matplotlib colorbar

在以下简单代码中:

dat = np.linspace(0.1,0.9,4)*np.ones((4,1))
fig, ax = plt.subplots()
cax = ax.imshow(dat, interpolation='none')
cbar = fig.colorbar(cax)
plt.show()

给出:

enter image description here

我希望颜色条的范围为[0,1]。这可以通过以下方式实现:

dat = np.linspace(0.1,0.9,4)*np.ones((4,1))
fig, ax = plt.subplots()
cax = ax.imshow(dat, interpolation='none')
cbar = fig.colorbar(cax)
cbar.set_clim(0, 1)
cbar.set_ticks(np.linspace(0,1,11))
plt.show()

导致:

enter image description here

显然,随着颜色变浅,范围发生了变化,但是刻度没有改变,即cbar.set_ticks()没有按预期执行。如何更改刻度线?

1 个答案:

答案 0 :(得分:2)

我不知道为什么颜色栏无法调整,但您可以通过将呼叫更改为imshow来实现您想要的效果

dat = np.linspace(0.1, 0.9, 4) * np.ones((4,1))
fig, ax = plt.subplots()
cax = ax.imshow(dat, interpolation='none', vmin=0, vmax=1)
cbar = fig.colorbar(cax)
plt.show()

请注意其他vminvmax参数。