在下面的简单代码中:
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()
给出:
我希望颜色条的范围为 [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()
结果是:
显然,随着颜色变浅,范围发生了变化,但刻度没有改变,即 cbar.set_ticks()
没有按预期执行。如何更改刻度线?
最佳答案
我不知道为什么颜色条不调整,但您可以通过更改对 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()
请注意附加的 vmin
和 vmax
参数。
关于python - 向 matplotlib 颜色条添加刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35664183/