【问题标题】:Matplotlib colorbar tick positioning - change between matplotlib versions?Matplotlib 颜色条刻度定位 - 在 matplotlib 版本之间更改?
【发布时间】:2019-09-21 20:38:11
【问题描述】:

Matplotlib 似乎改变了次要颜色条刻度的设置方式。下面是一个最小的示例。在 matplotlib 2.2.3 中,该代码在 0 和 10 之间创建 11 个次要刻度,在 matplotlib 3.0.3 中在 0 和 1 之间创建。对此有任何参考吗?我在更新日志中找不到任何内容。

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 到 10 之间的 11 个次要刻度”。它在 0 到 10 之间创建 11 个刻度,其中包括 5 个次要刻度和 6 个主要刻度
  • 不确定,我猜它仍然会在 0 到 10 之间创建 11 个次要刻度,只是次要刻度低于默认的主要刻度,因此看不到?

标签: python matplotlib plot colorbar


【解决方案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)

【讨论】:

    猜你喜欢
    • 2013-09-13
    • 1970-01-01
    • 2012-03-28
    • 2021-05-14
    • 2016-06-14
    • 2017-01-22
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多