Matplotlib似乎已经更改了设置小颜色条刻度的方式。下面是一个最小的示例。在matplotlib 2.2.3中,该代码在0和10之间的matplotlib 3.0.3中创建11个次要滴答声。对此是否有任何引用?我在变更日志中找不到任何内容。
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
np.random.seed(1000)
im = plt.imshow(np.random.rand(10,10) * 10)
cbar = plt.colorbar()
plt.clim(0,10)
cax = cbar.ax
cax.yaxis.set_ticks(np.linspace(0,1,11),minor=True)
答案 0 :(得分:1)
您是正确的,版本3中的颜色条发生了重大变化,很遗憾,沟通不畅。它以某种方式隐藏在this What's new entry
中颜色条的刻度现在可以根据颜色条的大小进行调整
现在,如果颜色条是由不是轮廓的或没有BoundaryNorm的可映射对象制成的,或者没有指定边界,则颜色条刻度现在会根据颜色条的大小进行调整。如果指定了边界等,则颜色栏将保持原始行为。
这也意味着颜色条现在像其他任何轴一样缩放。意思是,如果您希望在0到10之间有11个刻度,则需要使用
ticks = np.linspace(0,10,11)
cbar.ax.xaxis.set_ticks(ticks,minor=True)