Python 使用BoundaryNorm设置离散的颜色贴图级别,但同时使用DivergingNorm指定颜色贴图的中心?
我想指定一个在特定值处具有离散级别的颜色贴图,但也要指定cmap的中心对齐的位置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恰好位于中间 但是,如果我的级别更改
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教程可能与此相关:谢谢。我已经看过了,但它似乎不允许你设置离散的边界。