Only if there are multiple figures (plt.draw() operates on the current
active figure, while fig.draw() explicitly operates upon that figure).
Another possibility is that the bottleneck truly is the IO. Depending on
exactly how fits work, it might be lazily loading data for you, so the test
without the display of the images might not actually be loading any data
into memory.

Ben Root

On Tue, Oct 14, 2014 at 11:22 AM, Slavin, Jonathan <jsla...@cfa.harvard.edu>
wrote:

> Hmm.  I just saw that you suggest fig.draw().  Is there a difference with
> plt.draw()?
>
> Jon
>
> On Tue, Oct 14, 2014 at 11:20 AM, Slavin, Jonathan <
> jsla...@cfa.harvard.edu> wrote:
>
>> 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
>> ________________________________________________________
>>
>>
>
>
> --
> ________________________________________________________
> 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