python - 在一个颜色条上绘制两个范围

标签 python matplotlib colorbar

是否可以让一个颜色条具有两个范围?

基本上我有两个图(分别创建并粘贴到空白图像中)。

它们使用相同的颜色图(热),但由于每个图中数据的性质,颜色在不同的范围内。基本上在颜色条的左侧,我希望范围为 0-1,右侧为 0.75 -1。

颜色条可以用一个图或一个完整的图形来创建。我想绘制一个颜色条。

我目前知道如何将刻度从右移动到左或颜色条方向。但是,我似乎不能把刻度线放在两边。

这是我用来在颜色栏左侧而不是默认右侧绘制刻度的代码,但我似乎无法将它们放在两侧。

    cb = plt.colorbar(sm)
    cb.ax.yaxis.set_ticks_position('left')

最佳答案

基本上,您可以使用 twinx 创建另一个 Y 轴,但是当我尝试将其用于 colobar 轴时,纵横比设置会导致一些问题,所以我使用 set_position() 改变两个轴的宽度,这里是代码:

import pylab as pl
import numpy as np
a = np.random.rand(10, 10)
pl.imshow(a)
cb = pl.colorbar(pad=0.1)

l, b, w, h = cb.ax.get_position().bounds
cb.ax.set_aspect("auto")
w = 0.05
ax2 =pl.twinx(ax=cb.ax)
cb.ax.set_position([l, b, w, h])
ax2.set_position([l, b, w, h])
cb.ax.set_ylim(0, 1)
ax2.set_ylim(-10, 10)

输出:

enter image description here

关于python - 在一个颜色条上绘制两个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20372509/

相关文章:

python - 使用 python 可读显示文件名

python pandas 删除 df 值中的括号和 ,

python - 使用 pandas 绘制相关矩阵

python - Facet wrap 在 x 轴上丢失日期时间格式

python - Matplotlib:axvline 不定位在 .axis 上,而是定位在 ylim 上

r - 在ggplot2中添加手动渐变图例

python - Graphite 烯 : Enum argument doesn't seem to work

python - 减小 cPickle 对象的大小

python - 设置等高线图颜色条的限制

matlab - 颜色条高度太大并且重叠图形标题