comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: IDL 8 Display Updating Question
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: IDL 8 Display Updating Question [message #72671] Tue, 28 September 2010 11:13
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Matt Haffner writes:

> That's probably a better solution than what I found, but for
> posterity:
>
> p = plot(/test,/hide) & p['AXES'].hide=1
>
> There's minor flashing as the axes are briefly drawn, however. It
> turns out that the AXES are siblings, not children, of the PLOT, so
> the hide on PLOT doesn't carry down to them.

I wrote an article this morning with various solutions:

http://www.dfanning.com/ng_tips/speedup.html

It is probably mis-named as "SpeedUP", as I am
not convinced anything really speeds up. But at
least it brings the annoying update problems under
some kind of control.

I'm always interested in hearing about better
or different solutions. :-)

Cheers,

David



--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: IDL 8 Display Updating Question [message #72673 is a reply to message #72671] Tue, 28 September 2010 11:05 Go to previous message
Matt Haffner is currently offline  Matt Haffner
Messages: 34
Registered: October 2000
Member
That's probably a better solution than what I found, but for
posterity:

p = plot(/test,/hide) & p['AXES'].hide=1

There's minor flashing as the axes are briefly drawn, however. It
turns out that the AXES are siblings, not children, of the PLOT, so
the hide on PLOT doesn't carry down to them.

Unless I'm missing something, I couldn't find a "high-level" way to
get a pointer to the axes drawn by PLOT() without using this iTools
notation. If you need to fiddle with the main axes after they're up,
you can get at them with p['AXISn']: replace 'n' with 0-3 for bottom,
left, top, and right axes if you used box-style. The AXES path above
is a container that holds them all and has a few properties you can
tweak.

mh

On Sep 28, 12:07 pm, David Fanning <n...@dfanning.com> wrote:
> joseandres writes:
>> How about:
>
>> win = Window()
>> win.Refresh, /DISABLE
>> !null = Barplot(/test, /overplot)
>> win.Refresh
>
> OK, that seems to work. Thanks! :-)
>
> Cheers,
>
> David
>
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming:http://www.dfanning.com/
> Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: IDL 8 Display Updating Question [message #72674 is a reply to message #72673] Tue, 28 September 2010 10:07 Go to previous message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
joseandres writes:

> How about:
>
> win = Window()
> win.Refresh, /DISABLE
> !null = Barplot(/test, /overplot)
> win.Refresh

OK, that seems to work. Thanks! :-)

Cheers,

David

--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: IDL 8 Display Updating Question [message #72675 is a reply to message #72674] Tue, 28 September 2010 10:01 Go to previous message
joseandres is currently offline  joseandres
Messages: 2
Registered: September 2010
Junior Member
How about:

win = Window()
win.Refresh, /DISABLE
!null = Barplot(/test, /overplot)
win.Refresh
Re: IDL 8 Display Updating Question [message #72676 is a reply to message #72675] Tue, 28 September 2010 09:44 Go to previous message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
David Fanning writes:

> Is there any way to just see a blank window setting there
> until I am ready to put something in it?

Or, another way of asking this question. Is it possible
to write a graphic display to the BUFFER, and then later
attach it to an open window?

And while we are on it, the most disconcerting thing
about these new graphics objects is how keywords are
just ignored:

win = Window(/HIDE)

Apparently, HIDE is not a valid keyword for Window,
because nothing happens. But no errors and I can
blithely continue with win.hide=0, etc. No feedback
whatsoever.

Surely there is some object at the bottom (or is
it top?) of the widget hierarchy and is the last
one to be passed these keywords. Shouldn't that
object be defined with a _STRICT_EXTRA construction
so that these errors can be trapped!?

Cheers,

David


--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: IDL 8 Display Updating Question [message #72677 is a reply to message #72676] Tue, 28 September 2010 09:35 Go to previous message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Gray writes:

> What I think you're looking for is gobj.hide = 1 and
> then gobj.hide = 0.

Well, that's a little better. Now I just see the axes
sitting there until the final plot is ready. Which is
better than seeing the initial plot, I guess.

Is there any way to just see a blank window setting there
until I am ready to put something in it?

Cheers,

David


--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: IDL 8 Display Updating Question [message #72678 is a reply to message #72677] Tue, 28 September 2010 09:22 Go to previous message
Gray is currently offline  Gray
Messages: 253
Registered: February 2010
Senior Member
On Sep 28, 12:01 pm, David Fanning <n...@dfanning.com> wrote:
> Folks,
>
> I realize it is possible to turn off display updating by
> disabling the Refresh method of an object:
>
>    gobj = Barplot(/TEST)
>    gobj.Refresh, /DISABLE
>    ... lots of changes
>    gobj. Refresh ; Now display the updated object
>
> But you still see the initial bar plot (in this case)
> and then there is a delay until the new, updated object
> appears.
>
> How would I turn off the initial display of the object?
>
> I have tried writing the initial display to a buffer:
>
>    gobj = Barplot(/TEST, /BUFFER)
>
> But then I can't figure out how to actually open a
> new window and display the updated object in it. I
> was hoping for something like this:
>
>    gobj = Barplot(/TEST, /BUFFER)
>    gobj.Refresh, /DISABLE
>    ... lots of changes
>    win = Window()
>    gobj. Refresh , /CURRENT
>
> But that doesn't work. Any ideas?
>
> Cheers,
>
> David
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming:http://www.dfanning.com/
> Sepore ma de ni thui. ("Perhaps thou speakest truth.")

What I think you're looking for is gobj.hide = 1 and then gobj.hide =
0.
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Writing in text file
Next Topic: Simple question regarding CATCH,/CANCEL

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 13:47:58 PDT 2025

Total time taken to generate the page: 0.00718 seconds