【发布时间】:2011-04-10 12:47:05
【问题描述】:
我几乎没有使用 python 的经验,但我正在尝试创建一个简单的脚本来加载图像并使用滑块小部件来调整颜色条的最小值和最大值,并相应地重绘图像数据。
我正在尝试遵循以下示例:http://matplotlib.sourceforge.net/examples/widgets/slider_demo.html。我试图将绘图命令更改为 imshow,并使用滑块值来设置图像的 clim。但是,我从调用 '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()
【问题讨论】:
标签: python matplotlib widget