如何更新交互式绘图中的颜色条

时间:2014-02-20 15:52:15

标签: python matplotlib widget

以下代码绘制了一个2D数组,其值可以交互式更改。唯一缺少的是我希望它能改变colobar。不知何故,当我修改图像时,颜色条不会自行调整。

from pyplot import *
from numpy import *
from matplotlib.widgets import Slider, Button, RadioButtons

ax = subplot(111)
subplots_adjust(left=0.25, bottom=0.25)

my_img=random((100,100))*10.

l = imshow(my_img,origin='lower');cbar=colorbar()

ax1= axes([0.25, 0.1, 0.65, 0.03], axisbg='w')

par1 = Slider(ax1, 'normalization', 1, 100., valinit=1.5)

def update(val):
  new_normalization = par1.val
  new_img=random((100,100))*new_normalization

  l.set_array(new_img)

  # this doesn't change the new colobar maximum
  cbar.vmax=new_img.max()
  cbar.vmin=0
  draw()

par1.on_changed(update)

resetax = axes([0.8, 0.025, 0.1, 0.04])
button = Button(resetax, 'Reset', color='w', hovercolor='0.975')
def reset(event):
     par1.reset()

button.on_clicked(reset)
show()

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方案。

所需要的只是

     l.set_clim([new_img.min(), new_img.max()])