在颜色条 matplotlib 上记录标签

Posted

技术标签:

【中文标题】在颜色条 matplotlib 上记录标签【英文标题】:Log labels on colorbar matplotlib 【发布时间】:2015-02-05 08:12:13 【问题描述】:

我有一个对数的 imshow 图,当颜色条创建时,它的轴标签和刻度是对数的,但是由于值的范围很短(0-50),颜色条看起来像这样:

我希望它改为显示为沿轴间隔的 0、5、10、20、50(对数间距)。

我似乎无法让它工作。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

使用LogFormatter 类并将labelOnlyBase 设置为False

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors
from matplotlib.ticker import LogFormatter 

A = np.random.rand(50,50)*50
plt.imshow(A, norm=matplotlib.colors.LogNorm())
formatter = LogFormatter(10, labelOnlyBase=False) 
cb = plt.colorbar(ticks=[1,5,10,20,50], format=formatter)
plt.show()

【讨论】:

以上是关于在颜色条 matplotlib 上记录标签的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 颜色条背景和标签放置

如何更改 Matplotlib 中颜色条刻度标签的字体大小?

matplotlib:颜色条及其文本标签

Matplotlib 颜色条未显示 2 个离散值的标签

Python / Matplotlib:带有contourf的颜色条不尊重自定义cmap的刻度标签

在 matplotlib 用户界面中更新颜色条而不重置缩放历史记录