python - 向 matplotlib 颜色条添加刻度

标签 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() 没有按预期执行。如何更改刻度线?

最佳答案

我不知道为什么颜色条不调整,但您可以通过更改对 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 参数。

关于python - 向 matplotlib 颜色条添加刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35664183/

相关文章:

python - 将 py2app 与 lxml 包一起使用时出现问题

python - TurnkeyLinux Django 安装。默认管理员密码?

python - 使用 ToscaWidgets 进行表单初始化

python - 在 Python 中使用 subprocess.call 播放音频

python - Python 3 : unsupported operand type(s) for -: 'str' and 'float'

python - `map.scatter` basemap 不显示标记

python - 将 Matplotlib 绘图绘制到 Psychopy 循环中

python - Matplotlib 无法生成准确的 slider 图

python - 更改子图大小并使用 histogram2d 添加颜色条

python - 分别保存散点图的颜色条