我有一个对数 imshow 图,当创建颜色条时,它的轴标签和刻度是对数的,但由于值的范围较短(0-50),颜色条看起来像这样:
我希望它显示为沿轴间隔的 0、5、10、20、50(对数间距)。
Use the LogFormatter https://matplotlib.org/stable/api/ticker_api.html#matplotlib.ticker.LogFormatter类和集合labelOnlyBase
to False
:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors
from matplotlib.ticker import LogFormatter
np.random.seed(2023) # for reproducible sample data
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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)