Re: IDL 8 Display Updating Question [message #72671] |
Tue, 28 September 2010 11:13 |
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  |
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  |
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 #72676 is a reply to message #72675] |
Tue, 28 September 2010 09:44  |
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  |
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  |
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.
|
|
|