Prácticamente no tengo experiencia con python, pero estoy tratando de crear un script simple que cargue una imagen y use el control deslizante para ajustar el mínimo y máximo de la barra de colores, y vuelva a dibujar los datos de imagen en consecuencia.Usando el control deslizante matplotlib para cambiar clim en la imagen
Estoy tratando de seguir este ejemplo: http://matplotlib.sourceforge.net/examples/widgets/slider_demo.html. Intenté simplemente cambiar el comando de trazado para mostrar, y usar los valores del control deslizante para establecer la escala de mi imagen. Sin embargo, me sale el mensaje de error siguiente, a partir de la llamada 'im1, ax.imshow =' (en la línea 12 en el código de abajo):
objeto 'AxesImage' no es Iterable
No entiendo lo esta llamada sí lo hace, pero aparentemente no se puede usar con imshow(). Si elimino la coma en esa llamada, no obtengo ningún error, pero la imagen no se actualiza cuando se cambian los controles deslizantes. ¿Alguien tiene una solución alternativa o una explicación de por qué esto no funciona? Cualquier ayuda sería apreciada, gracias.
Mi código es el siguiente:
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()