【发布时间】:2015-02-05 08:12:13
【问题描述】:
我有一个对数的 imshow 图,当颜色条创建时,它的轴标签和刻度是对数的,但是由于值的范围很短(0-50),颜色条看起来像这样:
我希望它改为显示为沿轴间隔的 0、5、10、20、50(对数间距)。
我似乎无法让它工作。
感谢您的帮助。
【问题讨论】:
标签: python matplotlib colorbar imshow
我有一个对数的 imshow 图,当颜色条创建时,它的轴标签和刻度是对数的,但是由于值的范围很短(0-50),颜色条看起来像这样:
我希望它改为显示为沿轴间隔的 0、5、10、20、50(对数间距)。
我似乎无法让它工作。
感谢您的帮助。
【问题讨论】:
标签: python matplotlib colorbar imshow
使用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()
【讨论】: