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

Home » Public Forums » archive » Re: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window?
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: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window? [message #80109] Wed, 02 May 2012 08:03
chris_torrence@NOSPAM is currently offline  chris_torrence@NOSPAM
Messages: 528
Registered: March 2007
Senior Member
On Tuesday, May 1, 2012 2:07:56 PM UTC-6, Paul van Delst wrote:
>
> Thanks for the info. I will alert of our IT folks to keeep an eye out for the release.
>
> And, yes, I realise that the setdata method is better/faster but, as I pointed out in my reply to MikeG, this was a
> drop-in replacement of an NG window into a DG widget app. I would have to add the NG graphics reference to the widget
> state vector. As I also said, that's not a very big deal, but a working erase method would have been immediately successful.
>
> I know, I know, I'm a crotchety bugger... but I miss those "Will this work? Yes it does!" moments. Especially after I
> had one when I replaced the WIDGET_DRAW function with WIDGET_WINDOW simply by changing the name and, voila, there was my
> newly created NG window in my widget app waiting for me to fill it data plots.
>
> cheers.
>
> paulv

Hi paulv,

I totally understand your frustration. With IDL 8.2, I think we've made some great strides in making things "just work" in new graphics. Examples would include: allowing array inputs for Arrow and Symbol, custom Axis ranges, the Erase method, a new Clip property, a new symbol font with planetary symbols, a much better Colorbar, legends for vector plots, etc.

Nevertheless, I'm sure there are a lot more enhancements (and bug fixes) that need to be done before we truly surpass everything that direct graphics can do.

Please keep giving feedback as to where you think we can improve new graphics. At this point, we've done most of the "low-hanging" fruit, and from now on, we really need to rely on user input as to where you think we should go.

Thanks!

-Chris
ExelisVIS
Re: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window? [message #80116 is a reply to message #80109] Tue, 01 May 2012 13:07 Go to previous message
Paul Van Delst[1] is currently offline  Paul Van Delst[1]
Messages: 1157
Registered: April 2002
Senior Member
Hello,

On 05/01/12 14:33, Chris Torrence wrote:
> On Tuesday, May 1, 2012 8:48:33 AM UTC-6, Paul van Delst wrote:
>> On 05/01/12 10:27, David Fanning wrote:
>>> Paul van Delst writes:
>>>
>>>> I've started replacing the DG draw widgets in my widget apps with NG window widgets. The way I use a particular
>>>> app was to plot different things based on a selection from a button group. In DG there's no worries - you just
>>>> call plot and the erase happens automagically and the new plot appears. But in NG the plots just pile on top of
>>>> each other. I've searched the IDL documentation for the PLOT() and WINDOW() functions but there doesn't appear
>>>> to be an "Erase" method.
>>>>
>>>> However, when I look at the IDLgrWindow window documentation there is the Erase method listed.
>>>>
>>>> Which does work with the window created using Window(),e.g.
>>>>
>>>> IDL> w=window() % Loaded DLM: XML. IDL> p=plot(indgen(100),current=w) IDL> w.erase
>>>>
>>>> So, does this mean ALL IDLgrXXXX methods work with the associated NG functions (e.g. IDLgrPlot for PLOT(),
>>>> IDLgrSurface for SURFACE() etc)?
>>>>
>>>> And what about vice-versa?
>>>
>>> You must be living in a perfect world!
>>>
>>> I would say the connection between IDLgrXXXX methods and function graphics routines is "casual" at best. Maybe
>>> "haphazard" or "accidental" is a better description. Most things work right up until you are too committed to
>>> turn back. :-)
>>
>> Well, you know, this is probably about the sixth or seventh time where, after a period of weeks/months of doing
>> actual work, I come back to some IDL apps thinking "you know, it sure would be neat to use NG in this application".
>> And then, after a day of mucking about trying to figure out the cognitive pathways that led to the NG system, I
>> realise why I stopped doing this the last time.
>>
>> It is quite frustrating.
>>
>> paulv
>
> Hi Paul,
>
> The Erase method was officially added to the Window function in IDL 8.2, which will be available in just a few weeks.
> In the meantime, you could instead try using the "SetData" method to simply replace the plot data. That should
> actually be much faster than completely destroying the plot and recreating it.

Thanks for the info. I will alert of our IT folks to keeep an eye out for the release.

And, yes, I realise that the setdata method is better/faster but, as I pointed out in my reply to MikeG, this was a
drop-in replacement of an NG window into a DG widget app. I would have to add the NG graphics reference to the widget
state vector. As I also said, that's not a very big deal, but a working erase method would have been immediately successful.

I know, I know, I'm a crotchety bugger... but I miss those "Will this work? Yes it does!" moments. Especially after I
had one when I replaced the WIDGET_DRAW function with WIDGET_WINDOW simply by changing the name and, voila, there was my
newly created NG window in my widget app waiting for me to fill it data plots.

cheers.

paulv
Re: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window? [message #80117 is a reply to message #80116] Tue, 01 May 2012 12:57 Go to previous message
Paul Van Delst[1] is currently offline  Paul Van Delst[1]
Messages: 1157
Registered: April 2002
Senior Member
No Message Body
Re: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window? [message #80119 is a reply to message #80117] Tue, 01 May 2012 11:51 Go to previous message
Michael Galloy is currently offline  Michael Galloy
Messages: 1114
Registered: April 2006
Senior Member
On 5/1/12 8:32 AM, Paul van Delst wrote:
> Crikey, even the erase method doesn't work. And by "work" I mean according to:
>
>> e·rase/iˈrās/
>> Verb:
>> Rub out or remove (writing or marks).
>> Remove all traces of.
>
> If I do this:
>
> IDL> w=window()
> % Loaded DLM: XML.
> IDL> p=plot(lindgen(100),/current)
> IDL> w.erase
> IDL> p=plot((findgen(100)^2)/1000.0,/current)
>
> The first plot, which I erased, reappears! ARGHHHH!
>
> Is this a known bug or a "feature"?
>
> IDL> print, !version
> { x86 linux unix linux 8.1 Mar 9 2011 32 64}
>
> Does anyone know what is the sequence of commands to do what I would like to do? That is:
> 1) plot some data in the current window
> 2) erase the plot in the current window (data, axes, titles, everything)
> 3) plot some different data in that same, current window.
> 3a) And not have the original plot reappear.

Do you really need to erase everything?

IDL> p = plot(findgen(100))
IDL> p->setData, (findgen(100)^2)/1000.0

Or if you want to change a bunch of stuff at once:

IDL> p = plot(findgen(100))
IDL> p->refresh, /disable
IDL> p->setData, (findgen(100)^2)/1000.0
IDL> p.title = 'New title'
; ... set more properties ...
IDL> p->refresh

Mike
--
Michael Galloy
www.michaelgalloy.com
Modern IDL, A Guide to Learning IDL: http://modernidl.idldev.com
Research Mathematician
Tech-X Corporation
Re: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window? [message #80120 is a reply to message #80119] Tue, 01 May 2012 11:33 Go to previous message
chris_torrence@NOSPAM is currently offline  chris_torrence@NOSPAM
Messages: 528
Registered: March 2007
Senior Member
On Tuesday, May 1, 2012 8:48:33 AM UTC-6, Paul van Delst wrote:
> On 05/01/12 10:27, David Fanning wrote:
>> Paul van Delst writes:
>>
>>> I've started replacing the DG draw widgets in my widget apps with NG window widgets. The way I use a particular app was
>>> to plot different things based on a selection from a button group. In DG there's no worries - you just call plot and the
>>> erase happens automagically and the new plot appears. But in NG the plots just pile on top of each other. I've searched
>>> the IDL documentation for the PLOT() and WINDOW() functions but there doesn't appear to be an "Erase" method.
>>>
>>> However, when I look at the IDLgrWindow window documentation there is the Erase method listed.
>>>
>>> Which does work with the window created using Window(),e.g.
>>>
>>> IDL> w=window()
>>> % Loaded DLM: XML.
>>> IDL> p=plot(indgen(100),current=w)
>>> IDL> w.erase
>>>
>>> So, does this mean ALL IDLgrXXXX methods work with the associated NG functions (e.g. IDLgrPlot for PLOT(), IDLgrSurface
>>> for SURFACE() etc)?
>>>
>>> And what about vice-versa?
>>
>> You must be living in a perfect world!
>>
>> I would say the connection between IDLgrXXXX methods
>> and function graphics routines is "casual" at best.
>> Maybe "haphazard" or "accidental" is a better description.
>> Most things work right up until you are too committed to
>> turn back. :-)
>
> Well, you know, this is probably about the sixth or seventh time where, after a period of weeks/months of doing actual
> work, I come back to some IDL apps thinking "you know, it sure would be neat to use NG in this application". And then,
> after a day of mucking about trying to figure out the cognitive pathways that led to the NG system, I realise why I
> stopped doing this the last time.
>
> It is quite frustrating.
>
> paulv

Hi Paul,

The Erase method was officially added to the Window function in IDL 8.2, which will be available in just a few weeks. In the meantime, you could instead try using the "SetData" method to simply replace the plot data. That should actually be much faster than completely destroying the plot and recreating it.

Cheers,
Chris
ExelisVIS
Re: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window? [message #80121 is a reply to message #80120] Tue, 01 May 2012 07:48 Go to previous message
Paul Van Delst[1] is currently offline  Paul Van Delst[1]
Messages: 1157
Registered: April 2002
Senior Member
On 05/01/12 10:27, David Fanning wrote:
> Paul van Delst writes:
>
>> I've started replacing the DG draw widgets in my widget apps with NG window widgets. The way I use a particular app was
>> to plot different things based on a selection from a button group. In DG there's no worries - you just call plot and the
>> erase happens automagically and the new plot appears. But in NG the plots just pile on top of each other. I've searched
>> the IDL documentation for the PLOT() and WINDOW() functions but there doesn't appear to be an "Erase" method.
>>
>> However, when I look at the IDLgrWindow window documentation there is the Erase method listed.
>>
>> Which does work with the window created using Window(),e.g.
>>
>> IDL> w=window()
>> % Loaded DLM: XML.
>> IDL> p=plot(indgen(100),current=w)
>> IDL> w.erase
>>
>> So, does this mean ALL IDLgrXXXX methods work with the associated NG functions (e.g. IDLgrPlot for PLOT(), IDLgrSurface
>> for SURFACE() etc)?
>>
>> And what about vice-versa?
>
> You must be living in a perfect world!
>
> I would say the connection between IDLgrXXXX methods
> and function graphics routines is "casual" at best.
> Maybe "haphazard" or "accidental" is a better description.
> Most things work right up until you are too committed to
> turn back. :-)

Well, you know, this is probably about the sixth or seventh time where, after a period of weeks/months of doing actual
work, I come back to some IDL apps thinking "you know, it sure would be neat to use NG in this application". And then,
after a day of mucking about trying to figure out the cognitive pathways that led to the NG system, I realise why I
stopped doing this the last time.

It is quite frustrating.

paulv
Re: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window? [message #80122 is a reply to message #80121] Tue, 01 May 2012 07:32 Go to previous message
Paul Van Delst[1] is currently offline  Paul Van Delst[1]
Messages: 1157
Registered: April 2002
Senior Member
Crikey, even the erase method doesn't work. And by "work" I mean according to:

> e·rase/iˈrās/
> Verb:
> Rub out or remove (writing or marks).
> Remove all traces of.

If I do this:

IDL> w=window()
% Loaded DLM: XML.
IDL> p=plot(lindgen(100),/current)
IDL> w.erase
IDL> p=plot((findgen(100)^2)/1000.0,/current)

The first plot, which I erased, reappears! ARGHHHH!

Is this a known bug or a "feature"?

IDL> print, !version
{ x86 linux unix linux 8.1 Mar 9 2011 32 64}

Does anyone know what is the sequence of commands to do what I would like to do? That is:
1) plot some data in the current window
2) erase the plot in the current window (data, axes, titles, everything)
3) plot some different data in that same, current window.
3a) And not have the original plot reappear.


not-so-cheerily yours,

paulv


p.s. Let me double check something:

IDL> help, !PI
<Expression> FLOAT = 3.14159

phewph.


On 05/01/12 10:06, Paul van Delst wrote:
> Hello,
>
> I've started replacing the DG draw widgets in my widget apps with NG window widgets. The way I use a particular app was
> to plot different things based on a selection from a button group. In DG there's no worries - you just call plot and the
> erase happens automagically and the new plot appears. But in NG the plots just pile on top of each other. I've searched
> the IDL documentation for the PLOT() and WINDOW() functions but there doesn't appear to be an "Erase" method.
>
> However, when I look at the IDLgrWindow window documentation there is the Erase method listed.
>
> Which does work with the window created using Window(),e.g.
>
> IDL> w=window()
> % Loaded DLM: XML.
> IDL> p=plot(indgen(100),current=w)
> IDL> w.erase
>
> So, does this mean ALL IDLgrXXXX methods work with the associated NG functions (e.g. IDLgrPlot for PLOT(), IDLgrSurface
> for SURFACE() etc)?
>
> And what about vice-versa?
>
> cheers,
>
> paulv
>
Re: Relationship between IDLgrXXXX and associated NG functions. Was: IDL documentation gripe - How to erase a new graphics window? [message #80123 is a reply to message #80122] Tue, 01 May 2012 07:27 Go to previous message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Paul van Delst writes:

> I've started replacing the DG draw widgets in my widget apps with NG window widgets. The way I use a particular app was
> to plot different things based on a selection from a button group. In DG there's no worries - you just call plot and the
> erase happens automagically and the new plot appears. But in NG the plots just pile on top of each other. I've searched
> the IDL documentation for the PLOT() and WINDOW() functions but there doesn't appear to be an "Erase" method.
>
> However, when I look at the IDLgrWindow window documentation there is the Erase method listed.
>
> Which does work with the window created using Window(),e.g.
>
> IDL> w=window()
> % Loaded DLM: XML.
> IDL> p=plot(indgen(100),current=w)
> IDL> w.erase
>
> So, does this mean ALL IDLgrXXXX methods work with the associated NG functions (e.g. IDLgrPlot for PLOT(), IDLgrSurface
> for SURFACE() etc)?
>
> And what about vice-versa?

You must be living in a perfect world!

I would say the connection between IDLgrXXXX methods
and function graphics routines is "casual" at best.
Maybe "haphazard" or "accidental" is a better description.
Most things work right up until you are too committed to
turn back. :-)

Cheers,

David


--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Ice and Wind: Standing on the Arctic Ocean
Next Topic: colorbar question

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

Current Time: Wed Oct 08 17:03:06 PDT 2025

Total time taken to generate the page: 0.00861 seconds