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

Posted

技术标签:

【中文标题】将颜色条的标签从递增值更改为递减值【英文标题】:Change the labels of a colorbar from increasing to decreasing values 【发布时间】:2013-05-25 11:20:53 【问题描述】:

我想。当我尝试通过vminvmax 执行此操作时,我收到错误消息:

最小值必须小于或等于最大值

因此,例如,我希望颜色条从左侧的 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')

【问题讨论】:

【参考方案1】:

在方法 2 中生成颜色条的替代解决方案:

cmap1 = cmap1.reversed()
cb1.ax.invert_yaxis()

【讨论】:

【参考方案2】:

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

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

方法一:反转x轴

反转颜色条的整个 x 轴

如果你想反转 x 轴,意味着 x 轴上的值向右下降,使颜色条“镜像”,你可以使用@987654321 @的ax属性:

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

这给出了下面的输出。

还可以通过设置颜色条locator 来更改刻度标签的数量。这里使用了MultipleLocator,尽管您也可以使用许多other locators。

from matplotlib.ticker import MultipleLocator

cb1.locator = MultipleLocator(1) # Show ticks only for each multiple of 1
cb1.update_ticks()
cb1.ax.invert_xaxis() 

方法 2:使用自定义刻度标签

颠倒刻度标签的顺序,保持颜色条的方向

如果您想要颜色条本身的方向,并且只反转刻度标签出现的顺序,您可以使用set_ticksset_ticklabels 方法。与以前的解决方案相比,这更像是一种“蛮力”方法。

cb1.set_ticks(np.arange(15, 21))
cb1.set_ticklabels(np.arange(20, 14, -1))

这给出了如下所示的颜色条。请注意,颜色保持不变,只有刻度位置和刻度标签发生了变化。

【讨论】:

以上是关于将颜色条的标签从递增值更改为递减值的主要内容,如果未能解决你的问题,请参考以下文章

QTableView 根据值更改行颜色

matplotlib自定义设置plt.colorbar函数配置颜色条的刻度数实战:自定义设置颜色条刻度并为刻度值进行命名和标签化

如何使用 JavaScript 函数更改 CSS 值(颜色标签)? [复制]

将 X 轴值的颜色更改为多颜色值 - Chart.js

在R闪亮中将fileinput进度条颜色更改为渐变

无法将 colorButtonNormal 值更改为所有按钮