3
我有一个对数imshow图,当创建颜色条时,它的轴标签和刻度是对数的,但由于值的范围很短(0-50),颜色条看起来像这样:颜色条matplotlib上的日志标签
和我想它代替显示为0,5,10,20,50沿着轴线(对数间距)隔开。
我似乎无法得到这个工作。
感谢您的任何帮助。
我有一个对数imshow图,当创建颜色条时,它的轴标签和刻度是对数的,但由于值的范围很短(0-50),颜色条看起来像这样:颜色条matplotlib上的日志标签
和我想它代替显示为0,5,10,20,50沿着轴线(对数间距)隔开。
我似乎无法得到这个工作。
感谢您的任何帮助。
使用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()
完美,谢谢! – Jbarrell 2014-12-08 01:32:57