Использование виджета слайдера matplotlib для изменения клима на изображении

У меня практически нет опыта работы с python, но Я пытаюсь создать простой скрипт, который загружает изображение и использует виджет ползунка для настройки минимума и максимума шкалы цветов и соответствующим образом перерисовывает данные изображения.

Я пытаюсь следовать этому примеру: http://matplotlib.sourceforge.net/examples/widgets/slider_demo.html . Я попытался просто изменить команду plot на imshow и использовать значения ползунка для установки высоты моего изображения. Однако я получаю следующее сообщение об ошибке из-за вызова 'im1, = ax.imshow' (в строке 12 в приведенном ниже коде):

Объект AxesImage не повторяется

Я не понимаю, что это за вызов есть, но, видимо, его нельзя использовать с imshow (). Если я уберу запятую в этом вызове, я не получу ошибок, но изображение не обновляется при изменении ползунков. У кого-нибудь есть альтернативное решение, или объяснение, почему это не работает? Любая помощь будет принята с благодарностью, спасибо.

Мой код выглядит следующим образом:

from pylab import *
from matplotlib.widgets import Slider, Button, RadioButtons
import matplotlib.pyplot as plt
import numpy as np

close('all')

ax = subplot(111)
subplots_adjust(left=0.25, bottom=0.25)
min0 = 0
max0 = 25000

im=np.loadtxt('im.txt')
im1,=ax.imshow(im)
colorbar()

axcolor = 'lightgoldenrodyellow'
axmin = axes([0.25, 0.1, 0.65, 0.03], axisbg=axcolor)
axmax  = axes([0.25, 0.15, 0.65, 0.03], axisbg=axcolor)

smin = Slider(axmin, 'Min', 0, 30000, valinit=min0)
smax = Slider(axmax, 'Max', 0, 30000, valinit=max0)

def update(val):
    im1.set_clim=(smin.val,smax.val)
    draw()
smin.on_changed(update)
smax.on_changed(update)

show()

7
задан Chris Hanson 2 February 2014 в 04:54
поделиться