Hi Ben,

Sorry, in my little example, I left out a few things.  I do update first
after the first call.  And I do call draw() after other calls.  So here is
a more accurate representation of what I do:

first = True
fig = plt.figure()
for file in files:
    hdu = fits.open(file)
    image = hdu[0].data
    hdu.close()
    if first:
        ax = fig,add_subplot(1,1,1)
        im = ax.imshow(image)
        plt.show()
        first = False
    else:
        im.set_data(image)
        plt.draw()
    ans = raw_input('continue?')
    if ans == 'n':
        break

Jon


On Tue, Oct 14, 2014 at 10:42 AM, Benjamin Root <ben.r...@ou.edu> wrote:

> Also, you aren't updating "first" after the first call, so it is
> constantly making new axes and recalling imshow().
>
> Ben Root
>
> On Tue, Oct 14, 2014 at 10:41 AM, Benjamin Root <ben.r...@ou.edu> wrote:
>
>> What is happening is that you are not telling the image to redraw, so you
>> are only seeing it refresh for other reasons. Try adding a fig.draw() call
>> prior to the raw_input() call.
>>
>> Cheers!
>> Ben Root
>>
>> On Tue, Oct 14, 2014 at 10:03 AM, Slavin, Jonathan <
>> jsla...@cfa.harvard.edu> wrote:
>>
>>> Hi all,
>>>
>>> In my work lately I have often wanted to browse through a series of
>>> images.  This means displaying the image(s), looking at it/them and then
>>> continuing.  I have coded this in a few different ways, but it is generally
>>> pretty slow -- which is to say that the image display takes more than a
>>> couple seconds (~4) after I tell it to continue to the next image.  I
>>> tested the loop without image display and it was a factor of ~80 times
>>> faster than it was with image display, so it's doesn't have anything to do
>>> with reading the images from disk.  My latest approach is basically:
>>> first = True
>>> fig = plt.figure()
>>> for file in imagefiles:
>>>     # read in image data (fits files)
>>>     if first:
>>>         ax = fig.add_suplot(1,1,1)
>>>         im = ax.imshow(image)
>>>     else:
>>>         im.set_data(image)
>>>     ans = raw_input('continue?')
>>>     if ans == 'n':
>>>         break
>>>
>>> Is there a more efficient way to do this?
>>>
>>> Regards,
>>> Jon
>>>
>>> --
>>> ________________________________________________________
>>> Jonathan D. Slavin                 Harvard-Smithsonian CfA
>>> jsla...@cfa.harvard.edu       60 Garden Street, MS 83
>>> phone: (617) 496-7981       Cambridge, MA 02138-1516
>>> fax: (617) 496-7577            USA
>>> ________________________________________________________
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Comprehensive Server Monitoring with Site24x7.
>>> Monitor 10 servers for $9/Month.
>>> Get alerted through email, SMS, voice calls or mobile push notifications.
>>> Take corrective actions from your mobile device.
>>> http://p.sf.net/sfu/Zoho
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>>
>>
>


-- 
________________________________________________________
Jonathan D. Slavin                 Harvard-Smithsonian CfA
jsla...@cfa.harvard.edu       60 Garden Street, MS 83
phone: (617) 496-7981       Cambridge, MA 02138-1516
fax: (617) 496-7577            USA
________________________________________________________
------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to