Python Matplotlib:如何向图像贴图添加两个自定义颜色栏

Python Matplotlib:如何向图像贴图添加两个自定义颜色栏,python,matplotlib,Python,Matplotlib,设置。。。 我有一组成对的值(z,w),它们被映射到二维空间(即f(x,y)=(z,w))上,我正从中制作图像映射。我的首选方法是,每个点的rgb颜色如下所示: (r,g,b)=(z'w',z'(1-w'),z'), z'和w'被规格化为介于0和1之间(用于颜色映射目的)。 这样,z值有效地确定点的亮度,w值确定红-蓝色调 问题是。。。 我可以制作这个图像贴图,但是颜色条是彩虹颜色贴图(不知怎么的),这不是很有帮助。相反,我需要两个独立的自定义色条。我想要的是在右边有一个黑白的垂直色条,缩放到z

设置。。。 我有一组成对的值(z,w),它们被映射到二维空间(即f(x,y)=(z,w))上,我正从中制作图像映射。我的首选方法是,每个点的rgb颜色如下所示: (r,g,b)=(z'w',z'(1-w'),z'), z'和w'被规格化为介于0和1之间(用于颜色映射目的)。 这样,z值有效地确定点的亮度,w值确定红-蓝色调

问题是。。。 我可以制作这个图像贴图,但是颜色条是彩虹颜色贴图(不知怎么的),这不是很有帮助。相反,我需要两个独立的自定义色条。我想要的是在右边有一个黑白的垂直色条,缩放到z的范围,在底部有一个蓝红色的水平色条,缩放到w的范围


有人知道怎么做吗?

正如imsc在对我的问题的评论中指出的那样,答案在于他链接到的。下面是我正在使用的代码,下面是链接的示例,它专门解决了我问题中的情况:


我的公式中有一个小错误,应该是:(r,g,b)=(z'*w',0,z'*(1-w')。如果我理解你的问题,那么你在寻找类似的东西。还有一些示例代码。是的,这回答了我的问题,谢谢。我搜索matplotlib示例有一段时间了,我不知道我怎么会错过那个。
import matplotlib as mpl

ax_cb1 = fig.add_axes((0.85, 0.125, 0.03, 0.75))
BW_cdict = {
    'red':    ((0.0, 0.0, 0.0),
               (1.0, 1.0, 1.0)),
     'green': ((0.0, 0.0, 0.0),
               (1.0, 1.0, 1.0)),
     'blue': ((0.0, 0.0, 0.0),
               (1.0, 1.0, 1.0))
    }
black_white = mpl.colors.LinearSegmentedColormap('BlackWhite', BW_cdict)
norm = mpl.colors.Normalize(vmin=z_min, vmax=z_max)
cb1 = mpl.colorbar.ColorbarBase(
    ax_cb1, cmap=black_white, norm=norm, orientation='vertical'
)

ax_cb2 = fig.add_axes((0.125, 0.95, 0.75, 0.03))
BR_cdict = {
    'red':    ((0.0, 0.0, 0.0),
               (1.0, 1.0, 1.0)),
     'green': ((0.0, 0.0, 0.0),
               (1.0, 0.0, 0.0)),
     'blue':  ((0.0, 1.0, 1.0),
               (1.0, 0.0, 0.0))
    }
blue_red = mpl.colors.LinearSegmentedColormap('BlueRed', BR_cdict)
norm = mpl.colors.Normalize(vmin=w_min, vmax=w_max)
cb2 = mpl.colorbar.ColorbarBase(
    ax_cb2, cmap=blue_red, norm=norm, orientation='horizontal'
)