颜色条上的日志标签

问题描述 投票:0回答:1

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

enter image description here

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

python matplotlib colorbar imshow
1个回答
17
投票

使用

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()
© www.soinside.com 2019 - 2024. All rights reserved.