Hil*_*ert 7 python widget 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()
Run Code Online (Sandbox Code Playgroud)
Joe*_*ton 10
大多数情况下,您只有很多语法问题.
例如,您试图解压缩一个值(im1,=ax.imshow(im))给您TypeError在问题中提到的(应该如此).当您打算调用它时,还可以将函数设置为值:( im1.set_clim=(smin.val,smax.val)).
另外,我from pylab import *从你的例子中删除了.这对于交互式使用很好,但请不要将它用于实际代码.它很难分辨你调用的函数来自哪里(特别是pylab命名空间,设计很大.它只能用于交互式使用或快速的一次性脚本.)
这是一个工作示例(使用随机数据):
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import Slider, Button, RadioButtons
fig = plt.figure()
ax = fig.add_subplot(111)
fig.subplots_adjust(left=0.25, bottom=0.25)
min0 = 0
max0 = 25000
im = max0 * np.random.random((10,10))
im1 = ax.imshow(im)
fig.colorbar(im1)
axcolor = 'lightgoldenrodyellow'
axmin = fig.add_axes([0.25, 0.1, 0.65, 0.03], axisbg=axcolor)
axmax = fig.add_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])
fig.canvas.draw()
smin.on_changed(update)
smax.on_changed(update)
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7572 次 |
| 最近记录: |