【问题标题】:how to display the all intervals in colorbar using matplotlib如何使用 matplotlib 在颜色栏中显示所有间隔
【发布时间】:2018-10-30 19:23:16
【问题描述】:

这是我的代码。我在这里提到了 50 个间隔,当我拖动滑块时只有 6 或 7 个间隔,但我想在颜色栏中显示我所有的间隔。所以有人可以指导我。提前谢谢你。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button
import matplotlib.colors
ax = plt.subplot(111)
plt.subplots_adjust(left=0.25, bottom=0.25)
img_data = np.random.rand(50,50)

c_max = 2
img = ax.imshow(img_data, interpolation='nearest')
cb = plt.colorbar(img)
axcolor = 'lightgoldenrodyellow'
ax_cmax  = plt.axes([0.25, 0.15, 0.65, 0.03])
s_cmax = Slider(ax_cmax, 'max', 0, 50, valfmt=c_max)
def update(val, s=None):
    # _cmin = s_cmin.val
    _cmax = s_cmax.val
    img.set_clim(_cmax)
    plt.draw()
s_cmax.on_changed(update)

plt.show()

【问题讨论】:

    标签: python-2.7 matplotlib colorbar


    【解决方案1】:

    Slider 的参数称为valfmt 应该是一个字符串,用于格式化滑块值。

    因此,如果您想在浮点数中显示 2 位小数,则需要设置为 c_max = "%1.2f"。请注意,如果您想将最小值保持在 0,您也需要在 img.set_clim(0, _cmax) 中设置它

    c_max = "%1.2f"
    img = ax.imshow(img_data, interpolation='nearest')
    cb = plt.colorbar(img)
    axcolor = 'lightgoldenrodyellow'
    ax_cmax  = plt.axes([0.25, 0.15, 0.65, 0.03])
    s_cmax = Slider(ax_cmax, 'max', 0, 50, valfmt=c_max)
    def update(val, s=None):
        # _cmin = s_cmin.val
        _cmax = s_cmax.val
        img.set_clim(0, _cmax) 
        plt.draw()
    s_cmax.on_changed(update)
    
    plt.show()
    

    【讨论】:

    • 非常感谢您的回答,但是先生,我想在这里向所有间隔显示我提到的 50
    • 我不明白你所说的所有间隔是什么意思。你能详细解释一下吗?
    • 当我拖动滑块时,只有我的剩余间隔即将到来,但我想在颜色栏中显示整个间隔,即问题
    • 是的,这里是 s_cmax = Slider(ax_cmax, 'max', 0, 50, valfmt=c_max) 这里我取了 0 到 50 个值,我想在颜色条中显示这些值先生
    • 如果不调整颜色栏(以及图像)上的值,那么滑块应该怎么做?
    猜你喜欢
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 2018-04-09
    相关资源
    最近更新 更多