首页 > 解决方案 > Matplotlib Colorbar 将不同的 bin 分配给自定义颜色条?

问题描述

我正在尝试使用具有不同 bin 间隔的 matplotlib 使用以下代码创建自定义颜色条:

import matplotlib as mpl
import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(12, 6))

fig.subplots_adjust(bottom=0.5)
cmap = mpl.colors.ListedColormap([(1, 1,1, 0),
                                        (237/255, 239/255, 243/255, 1.0),              #whitesmoke
                                        (172/255, 180/255,206/255, 1.0),              #mediumslateblue
                                        (161/255,215/255,227/255, 1.0),          #lightskyblue
                                        (143/255,200/255,145/255, 1.0),          #seagreen
                                        (249/255,236/255,51/255, 1.0),          #yellow
                                        (238/255,181/255,9/255, 1.0),          #gold
                                        (233/255,135/255,45/255, 1.0),          #orange
                                        (223/255,83/255,42/255, 1.0),          #darkorange
                                        (217/255,38/255,42/255, 1.0)])          #red

            
bounds= [0.02,0.07,0.28,1.14,4.63,8.60,15.70,28.66,52.39,95.69]
ticks=[0.02,0.07,0.28,1.14,4.63,8.60,15.70,28.66,52.39,95.69]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
cb2 = mpl.colorbar.ColorbarBase(ax, cmap=cmap,
                                        norm=norm,
                                        boundaries=ticks,
                                         ticks=bounds,
                                        spacing='proportional',
                                        orientation='horizontal')

彩条输出

我的问题是我希望颜色条以相等的颜色箱出现,但根据该箱在数据集中分配值。但是你可以看到颜色条上的垃圾箱不均匀,小垃圾箱无法读取?你能帮我指出我做错了什么吗?

提前谢谢你。

标签: pythonmatplotlibcolorbar

解决方案


推荐阅读