将颜色条的标签从增加更改为减少值

Pau*_*ler 6 matplotlib max labels minimum colorbar

我想将颜色条的标签从增加更改为减少值.当我尝试通过这样做时vmin,vmax我收到错误消息:

minvalue必须小于或等于maxvalue

所以,例如,我希望颜色栏从左边的20开始,然后在右边的15上.

这是我到目前为止的颜色栏代码,但在这个例子中,值从15到20,我想颠倒这个顺序:

cmap1 = mpl.cm.YlOrBr_r

norm1 = mpl.colors.Normalize(15,20)

cb1   = mpl.colorbar.ColorbarBase(colorbar1, cmap=cmap1, norm=norm1, orientation='horizontal')

cb1.set_label('magnitude')
Run Code Online (Sandbox Code Playgroud)

sod*_*odd 8

下面显示的颜色栏可能与您的颜色不完全相同,因为它们只是示例颜色栏,可用作概念验证.

在下面我假设你有一个类似于此的颜色条,右边的值增加:

原始色条

方法1:反转x轴

反转颜色条的整个x轴

如果要反转 x轴,意味着x轴上的值向右下降,使颜色栏"镜像",则可以使用ColorbarBase's ax属性:

cb1   = mpl.colorbar.ColorbarBase(colorbar1,
                                  cmap=cmap1,
                                  norm=norm1,
                                  orientation='horizontal')
cb1.ax.invert_xaxis()
Run Code Online (Sandbox Code Playgroud)

这给出了下面的输出.

带有倒X轴的Colorbar

也可以通过设置颜色条来更改滴答标签的数量locator.这里MultipleLocator使用了,虽然你也可以使用许多其他定位器.

from matplotlib.ticker import MultipleLocator

cb1.locator = MultipleLocator(1) # Show ticks only for each multiple of 1
cb1.update_ticks()
cb1.ax.invert_xaxis() 
Run Code Online (Sandbox Code Playgroud)

具有倒X轴和MultipleLocator的Colorbar

方法2:使用自定义ticklabels

反转ticklabels的顺序,保持颜色条的方向

如果您希望颜色条本身的方向不变,并且只反转勾选标签的显示顺序,则可以使用set_ticksset_ticklabels方法.与以前的解决方案相比,这更像是一种"暴力"方法.

cb1.set_ticks(np.arange(15, 21))
cb1.set_ticklabels(np.arange(20, 14, -1))
Run Code Online (Sandbox Code Playgroud)

这给出了下面看到的颜色条.请注意,颜色保持不变,只有刻度位置和刻度标签已更改.

Colorbar与自定义ticklabels