【问题标题】:How to set number of ticks in plt.colorbar?如何在 plt.colorbar 中设置刻度数?
【发布时间】:2014-03-27 13:14:57
【问题描述】:

当我用颜色条绘制矩阵时,颜色条有 10 个刻度。由于颜色条必须非常小,因此刻度标签重叠。因此我想将刻度数从 10 减少到 5。我不想减小字体大小!

有没有简单的方法来做到这一点?我不想手动设置刻度...

【问题讨论】:

    标签: python matplotlib colorbar


    【解决方案1】:

    MaxNLocator 代码可能适合您的目的?

    ma​​tplotlib.ticker.MaxNLocator

    在不错的位置选择不超过 N 个区间

    例如:

    from matplotlib import ticker
    
    # (generate plot here)
    cb = plt.colorbar()
    tick_locator = ticker.MaxNLocator(nbins=5)
    cb.locator = tick_locator
    cb.update_ticks()
    plt.show()
    

    【讨论】:

    • 非常感谢!这是正确(而且非常简单)的解决方案!
    • 目前颜色条的上端没有刻度,但在下端。这对我来说看起来非常不对称和丑陋。有解决办法吗?
    • 好的.... 只需将 cb.ax.yaxis.set_major_locator(matplotlib.ticker.AutoLocator()) 放在 c.b.update_icks() 之前
    • 感谢@FrankTheTank 的补充。对于其他人复制和粘贴该添加,有一个隐藏字符会导致括号上的SyntaxError: invalid syntax。只需删除并重新输入括号(因此也删除隐藏字符),它会正常工作。
    • 在两个边界处获取刻度的更简单的选项是:LinearLocator(5)
    【解决方案2】:

    郑重声明,现在也可以通过以下方式实现:

    cbar = plt.colorbar()
    cbar.ax.locator_params(nbins=5)
    

    ticker.MaxNLocator对话。

    【讨论】:

    • 这改变了我的 vmin / vmax。不过cbar.set_ticks 工作了。
    • @user1834164 你是怎么申请cbar.set_ticks的?
    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多