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

Ash*_*ton 2 python matplotlib colorbar

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

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

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

可以使用一个图或完全图形创建颜色条.我想绘制一个颜色条.

我目前知道如何从右到左或彩条方向移动刻度线.但是,我似乎无法将蜱虫放在两边.

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

    cb = plt.colorbar(sm)
    cb.ax.yaxis.set_ticks_position('left')
Run Code Online (Sandbox Code Playgroud)

HYR*_*YRY 7

基本上,你可以twinx用来创建另一个Y轴,但是当我尝试使用colobar ax时,方面设置会引起一些问题,所以我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)
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述