oplot [message #17728] |
Fri, 12 November 1999 00:00  |
R.Bauer
Messages: 1424 Registered: November 1998
|
Senior Member |
|
|
Who knows more about this error?
It happens only using Z-Buffer. If I am using my screen no error
happens.
% OPLOT: No valid points, must have at least 2 distinct points
I tried on IBM AIX and WIN NT
Later on I'll post a small example.
R.Bauer
|
|
|
|
|
|
|
Re: oplot [message #69519 is a reply to message #17728] |
Mon, 25 January 2010 10:29   |
Paul Van Delst[1]
Messages: 1157 Registered: April 2002
|
Senior Member |
|
|
mgalloy wrote:
>
> I think you want something like:
>
> if (i eq 0) then begin
> window, /free
> win1 = !d.window
> plot, x1, y1
>
> window, /free
> win2 = !d.window
> plot, w1, z1
>
> ...
> endif else begin
> wset, win1
> oplot, x2, y2
>
> wset, win2
> plot, w2, z2
>
> ...
> endelse
And you might want to save the !X and !Y sysvars after each PLOT and then restore then
before each OPLOT for each of the two plots, e.g.
; Master save
xsave = !x
ysave = !y
if (i eq 0) then begin
window, /free
win1 = !d.window
plot, x1, y1
x1save = !x
y1save = !y
window, /free
win2 = !d.window
plot, w1, z1
x2save = !x
y2save = !y
...
endif else begin
wset, win1
!x = x1save
!y = y1save
oplot, x2, y2
wset, win2
!x = x2save
!y = y2save
oplot, w2, z2
...
endelse
; Master restore
!x = xsave
!y = ysave
Probably overkill, but still...
cheers,
paulv
|
|
|
Re: oplot [message #69520 is a reply to message #17728] |
Mon, 25 January 2010 09:24   |
Michael Galloy
Messages: 1114 Registered: April 2006
|
Senior Member |
|
|
On 1/25/10 7:16 AM, bing999 wrote:
> Hi,
>
> here is what i am trying to do:
>
>
> "for i = 0,10 do begin
>
> if i eq 0 then begin
> plot,x1,y1,........
> plot,w1,z1,........
> .............
> endif else begin
> oplot,x2,y2
> oplot,w2,z2
> ..................
> endelse
>
> endfor"
>
> but i want the "oplot,x2,y2" to overplot the "plot,x1,y1,........" ,
> the "oplot,w2,z2" to overplot " plot,w1,z1,........" and so on; that
> is to say, i want that each "oplot" command applies to the
> corresponding "plot" procedure.
> Whereas when i do the script written above, it overplots everything on
> the last plot.
> Is there any way to allocate a name/number to each "plot" procedure in
> order to overplot the corresponding thing on it? like:
>
>
> "for i = 0,10 do begin
>
> if i eq 0 then begin
> plot,x1,y1,NAME=1
> plot,w1,z1,NAME=2
> .............
> endif else begin
> oplot,x2,y2,NAME=1
> oplot,w2,z2,NAME=2
> ..................
> endelse
>
> endfor"
>
>
> Thank you!
I think you want something like:
if (i eq 0) then begin
window, /free
win1 = !d.window
plot, x1, y1
window, /free
win2 = !d.window
plot, w1, z1
...
endif else begin
wset, win1
oplot, x2, y2
wset, win2
plot, w2, z2
...
endelse
Mike
--
www.michaelgalloy.com
Research Mathematician
Tech-X Corporation
|
|
|
Re: oplot [message #69629 is a reply to message #17728] |
Thu, 28 January 2010 15:22   |
Paul Van Delst[1]
Messages: 1157 Registered: April 2002
|
Senior Member |
|
|
bing999 wrote:
> It does not work... It still oplots everything on the last plot...
> I must keep only the "x1save = !x y1save = !y " after the "plot" and
> the "!x = x1save !y = y1save" before the "oplot", thats it?
>
> Are the " ; Master save
> xsave = !x
> ysave = !y"
> and " ; Master restore
> !x = xsave
> !y = ysave "
>
> lines respectively at the beginning and the end of the script are
> useful? Should I add them?
No. You can't do what you originally asked for when the output is PS. In the context of
IDL, there is no way to overplot on a previous page in a PS file. With direct graphics
it's obviously easy (via WSET), but there is no PS equivalent (that I'm aware of).
It might be possible to do what you want in PostScript itself (via some arcane PS command).
The easiest solution would be to restructure your code to output each plot to a different
PS file.
cheers,
paulv
> Thank you for your help!
>
>
>> Hi, thanks for your answers. I should have mentionned that i want to
>> save the plots as .ps then i use :
>>
>> set_plot, 'ps'
>> device, filename='myplots.ps',/color,bits_per_pixel=8
>> ..............................
>> device, /close
>>
>> and what you proposed seems not to work with such environment.
>> Is it possible to arrange that?
>> Thanks!
>>
>>> mgalloy wrote:
>>>> I think you want something like:
>>>> if (i eq 0) then begin
>>>> window, /free
>>>> win1 = !d.window
>>>> plot, x1, y1
>>>> window, /free
>>>> win2 = !d.window
>>>> plot, w1, z1
>>>> ...
>>>> endif else begin
>>>> wset, win1
>>>> oplot, x2, y2
>>>> wset, win2
>>>> plot, w2, z2
>>>> ...
>>>> endelse
>>> And you might want to save the !X and !Y sysvars after each PLOT and then restore then
>>> before each OPLOT for each of the two plots, e.g.
>>> ; Master save
>>> xsave = !x
>>> ysave = !y
>>> if (i eq 0) then begin
>>> window, /free
>>> win1 = !d.window
>>> plot, x1, y1
>>> x1save = !x
>>> y1save = !y
>>> window, /free
>>> win2 = !d.window
>>> plot, w1, z1
>>> x2save = !x
>>> y2save = !y
>>> ...
>>> endif else begin
>>> wset, win1
>>> !x = x1save
>>> !y = y1save
>>> oplot, x2, y2
>>> wset, win2
>>> !x = x2save
>>> !y = y2save
>>> oplot, w2, z2
>>> ...
>>> endelse
>>> ; Master restore
>>> !x = xsave
>>> !y = ysave
>>> Probably overkill, but still...
>>> cheers,
>>> paulv
>>
>
|
|
|
Re: oplot [message #69662 is a reply to message #17728] |
Tue, 26 January 2010 04:35   |
Thibault Garel
Messages: 55 Registered: October 2009
|
Member |
|
|
It does not work... It still oplots everything on the last plot...
I must keep only the "x1save = !x y1save = !y " after the "plot" and
the "!x = x1save !y = y1save" before the "oplot", thats it?
Are the " ; Master save
xsave = !x
ysave = !y"
and " ; Master restore
!x = xsave
!y = ysave "
lines respectively at the beginning and the end of the script are
useful? Should I add them?
Thank you for your help!
> Hi, thanks for your answers. I should have mentionned that i want to
> save the plots as .ps then i use :
>
> set_plot, 'ps'
> device, filename='myplots.ps',/color,bits_per_pixel=8
> ..............................
> device, /close
>
> and what you proposed seems not to work with such environment.
> Is it possible to arrange that?
> Thanks!
>
>> mgalloy wrote:
>
>>> I think you want something like:
>
>>> if (i eq 0) then begin
>>> window, /free
>>> win1 = !d.window
>>> plot, x1, y1
>
>>> window, /free
>>> win2 = !d.window
>>> plot, w1, z1
>
>>> ...
>>> endif else begin
>>> wset, win1
>>> oplot, x2, y2
>
>>> wset, win2
>>> plot, w2, z2
>
>>> ...
>>> endelse
>
>> And you might want to save the !X and !Y sysvars after each PLOT and then restore then
>> before each OPLOT for each of the two plots, e.g.
>
>> ; Master save
>> xsave = !x
>> ysave = !y
>
>> if (i eq 0) then begin
>> window, /free
>> win1 = !d.window
>> plot, x1, y1
>> x1save = !x
>> y1save = !y
>
>> window, /free
>> win2 = !d.window
>> plot, w1, z1
>> x2save = !x
>> y2save = !y
>
>> ...
>> endif else begin
>> wset, win1
>> !x = x1save
>> !y = y1save
>> oplot, x2, y2
>
>> wset, win2
>> !x = x2save
>> !y = y2save
>> oplot, w2, z2
>
>> ...
>> endelse
>
>> ; Master restore
>> !x = xsave
>> !y = ysave
>
>> Probably overkill, but still...
>
>> cheers,
>
>> paulv
>
>
|
|
|
Re: oplot [message #69663 is a reply to message #17728] |
Tue, 26 January 2010 03:19   |
jkeller
Messages: 35 Registered: October 2009
|
Member |
|
|
On Jan 26, 10:52 am, bing999 <thibaultga...@gmail.com> wrote:
> Hi, thanks for your answers. I should have mentionned that i want to
> save the plots as .ps then i use :
>
> set_plot, 'ps'
> device, filename='myplots.ps',/color,bits_per_pixel=8
> ..............................
> device, /close
>
> and what you proposed seems not to work with such environment.
> Is it possible to arrange that?
> Thanks!
>
>> mgalloy wrote:
>
>>> I think you want something like:
>
>>> if (i eq 0) then begin
>>> window, /free
>>> win1 = !d.window
>>> plot, x1, y1
>
>>> window, /free
>>> win2 = !d.window
>>> plot, w1, z1
>
>>> ...
>>> endif else begin
>>> wset, win1
>>> oplot, x2, y2
>
>>> wset, win2
>>> plot, w2, z2
>
>>> ...
>>> endelse
>
>> And you might want to save the !X and !Y sysvars after each PLOT and then restore then
>> before each OPLOT for each of the two plots, e.g.
>
>> ; Master save
>> xsave = !x
>> ysave = !y
>
>> if (i eq 0) then begin
>> window, /free
>> win1 = !d.window
>> plot, x1, y1
>> x1save = !x
>> y1save = !y
>
>> window, /free
>> win2 = !d.window
>> plot, w1, z1
>> x2save = !x
>> y2save = !y
>
>> ...
>> endif else begin
>> wset, win1
>> !x = x1save
>> !y = y1save
>> oplot, x2, y2
>
>> wset, win2
>> !x = x2save
>> !y = y2save
>> oplot, w2, z2
>
>> ...
>> endelse
>
>> ; Master restore
>> !x = xsave
>> !y = ysave
>
>> Probably overkill, but still...
>
>> cheers,
>
>> paulv
>
>
Just take the !x,!y,x1save,y1save etc. part from pauls solution
without the win stuff. That should work for you.
Regards,
Jan
|
|
|
Re: oplot [message #69665 is a reply to message #69519] |
Tue, 26 January 2010 01:52   |
Thibault Garel
Messages: 55 Registered: October 2009
|
Member |
|
|
Hi, thanks for your answers. I should have mentionned that i want to
save the plots as .ps then i use :
set_plot, 'ps'
device, filename='myplots.ps',/color,bits_per_pixel=8
..............................
device, /close
and what you proposed seems not to work with such environment.
Is it possible to arrange that?
Thanks!
> mgalloy wrote:
>
>> I think you want something like:
>
>> if (i eq 0) then begin
>> window, /free
>> win1 = !d.window
>> plot, x1, y1
>
>> window, /free
>> win2 = !d.window
>> plot, w1, z1
>
>> ...
>> endif else begin
>> wset, win1
>> oplot, x2, y2
>
>> wset, win2
>> plot, w2, z2
>
>> ...
>> endelse
>
> And you might want to save the !X and !Y sysvars after each PLOT and then restore then
> before each OPLOT for each of the two plots, e.g.
>
> ; Master save
> xsave = !x
> ysave = !y
>
> if (i eq 0) then begin
> window, /free
> win1 = !d.window
> plot, x1, y1
> x1save = !x
> y1save = !y
>
> window, /free
> win2 = !d.window
> plot, w1, z1
> x2save = !x
> y2save = !y
>
> ...
> endif else begin
> wset, win1
> !x = x1save
> !y = y1save
> oplot, x2, y2
>
> wset, win2
> !x = x2save
> !y = y2save
> oplot, w2, z2
>
> ...
> endelse
>
> ; Master restore
> !x = xsave
> !y = ysave
>
> Probably overkill, but still...
>
> cheers,
>
> paulv
|
|
|
Re: oplot [message #69744 is a reply to message #69629] |
Mon, 08 February 2010 21:37  |
Gray
Messages: 253 Registered: February 2010
|
Senior Member |
|
|
On Jan 28, 6:22 pm, Paul van Delst <paul.vande...@noaa.gov> wrote:
> bing999 wrote:
>> It does not work... It still oplots everything on the last plot...
>> I must keep only the "x1save = !x y1save = !y " after the "plot" and
>> the "!x = x1save !y = y1save" before the "oplot", thats it?
>
>> Are the " ; Master save
>> xsave = !x
>> ysave = !y"
>> and " ; Master restore
>> !x = xsave
>> !y = ysave "
>
>> lines respectively at the beginning and the end of the script are
>> useful? Should I add them?
>
> No. You can't do what you originally asked for when the output is PS. In the context of
> IDL, there is no way to overplot on a previous page in a PS file. With direct graphics
> it's obviously easy (via WSET), but there is no PS equivalent (that I'm aware of).
>
> It might be possible to do what you want in PostScript itself (via some arcane PS command).
>
> The easiest solution would be to restructure your code to output each plot to a different
> PS file.
>
> cheers,
>
> paulv
>
>> Thank you for your help!
>
>>> Hi, thanks for your answers. I should have mentionned that i want to
>>> save the plots as .ps then i use :
>
>>> set_plot, 'ps'
>>> device, filename='myplots.ps',/color,bits_per_pixel=8
>>> ..............................
>>> device, /close
>
>>> and what you proposed seems not to work with such environment.
>>> Is it possible to arrange that?
>>> Thanks!
>
>>>> mgalloy wrote:
>>>> > I think you want something like:
>>>> > if (i eq 0) then begin
>>>> > window, /free
>>>> > win1 = !d.window
>>>> > plot, x1, y1
>>>> > window, /free
>>>> > win2 = !d.window
>>>> > plot, w1, z1
>>>> > ...
>>>> > endif else begin
>>>> > wset, win1
>>>> > oplot, x2, y2
>>>> > wset, win2
>>>> > plot, w2, z2
>>>> > ...
>>>> > endelse
>>>> And you might want to save the !X and !Y sysvars after each PLOT and then restore then
>>>> before each OPLOT for each of the two plots, e.g.
>>>> ; Master save
>>>> xsave = !x
>>>> ysave = !y
>>>> if (i eq 0) then begin
>>>> window, /free
>>>> win1 = !d.window
>>>> plot, x1, y1
>>>> x1save = !x
>>>> y1save = !y
>>>> window, /free
>>>> win2 = !d.window
>>>> plot, w1, z1
>>>> x2save = !x
>>>> y2save = !y
>>>> ...
>>>> endif else begin
>>>> wset, win1
>>>> !x = x1save
>>>> !y = y1save
>>>> oplot, x2, y2
>>>> wset, win2
>>>> !x = x2save
>>>> !y = y2save
>>>> oplot, w2, z2
>>>> ...
>>>> endelse
>>>> ; Master restore
>>>> !x = xsave
>>>> !y = ysave
>>>> Probably overkill, but still...
>>>> cheers,
>>>> paulv
>
Can you use multiple windows in the z-buffer? If so, you could make
all your plots using the win and wset, then read the images and dump
them to a postscript. You would probably have resolution issues,
though, even if it worked.
|
|
|