Python 使用BoundaryNorm设置离散的颜色贴图级别,但同时使用DivergingNorm指定颜色贴图的中心?

Python 使用BoundaryNorm设置离散的颜色贴图级别,但同时使用DivergingNorm指定颜色贴图的中心?,python,matplotlib,colormap,Python,Matplotlib,Colormap,我想指定一个在特定值处具有离散级别的颜色贴图,但也要指定cmap的中心对齐的位置 frac_levels = [0, 0.1, 0.2, 0.5, 0.75, 1.0, 2.0, 3.0, 5.0, 7.0, 10.0] frac_norm = colors.BoundaryNorm(boundaries=frac_levels, ncolors=256) 这给了我一个在0、0.1等处具有离散边界的彩色贴图 如果我使用RedBu或任何发散的颜色贴图,1.0恰好位于中间 但是,如果我的级别更改

我想指定一个在特定值处具有离散级别的颜色贴图,但也要指定cmap的中心对齐的位置

frac_levels = [0, 0.1, 0.2, 0.5, 0.75, 1.0, 2.0, 3.0, 5.0, 7.0, 10.0]
frac_norm = colors.BoundaryNorm(boundaries=frac_levels, ncolors=256) 
这给了我一个在0、0.1等处具有离散边界的彩色贴图

如果我使用RedBu或任何发散的颜色贴图,1.0恰好位于中间

但是,如果我的级别更改为:

frac_levels = [0, 0.25, 0.5, 0.75, 1.0, 2.0, 3.0, 5.0, 7.0, 10.0, 15.0]
frac_norm = colors.BoundaryNorm(boundaries=frac_levels, ncolors=256) 
我仍然希望1在彩色地图的中间,但是2现在在中心。我可以使用
colors.diversingnorm(vmin=0,vcenter=1.0,vmax=15)
或类似工具来定义中点,但它是一个连续的颜色贴图,不再位于我想要的离散边界

有没有办法将这两种归一化方法结合起来


编辑:我可能可以制作一个完全自定义的颜色图,只包含我想要的颜色,但这似乎不是一个很好的解决方案,每次我的值发生变化时都需要进行自定义。

TwoSlowenorm教程可能与此相关:谢谢。我已经看过了,但它似乎不允许你设置离散的边界。