Re: IDL 8, log plots and titles [message #73114 is a reply to message #73112] |
Tue, 26 October 2010 13:33   |
pgrigis
Messages: 436 Registered: September 2007
|
Senior Member |
|
|
On Oct 26, 3:03 pm, b_gom <b_...@hotmail.com> wrote:
> Am I missing something, or is IDL 8 fumbling logarithmic y axes and
> plot titles when using the new plot function?
>
> When plotting log plots, the plot title seems to vanish, and also IDL
> does not seem to be able to calculate the y range properly. In the
> sample code below, compare the direct graphics output (which handles
> the range and title correctly automatically) to the new plot function
> output which doesn't seem to be able to figure out what I want:
>
> ----------------------------------------
> x=findgen(100)/100*3*!pi
> y=sin(x)
>
> ;This is what I expect; yaxis handles infinite log range and title
> appears correctly
> plot,x,y,/ylog,title='Direct Graphics Yrange and Title'
"correctly"? I think the automatic choice of yrange for a logarithmic
plot is a matter of personal preference - but certainly for any
serious
work you want to set the yrange explicitely yourself. But even when I
am
too lazy to do so, I would prefer this behavior as default:
title='pretty plot'
;pardon the kilometric one-liner
;wrapped to survive google groups posting
plot,x,y,/ylog, $
yrange=total(y GT 0) GT 0 ? $
[min(y[where(y GT 0)]),max(y)] : $
[(machar()).xmin,(machar()).xmax],$
title=total(y LT 0) GT 0 ? $
'NEGATIVE VALUES NOT PLOTTED '+$
title:title
Ciao,
Paolo
>
> ;Now for the plot function output:
> ;title works for linear y axes
> p1=plot(x,y,yrange=[0.1,1],title='Linear Y Axis
> Works',window_title='Linear Y Axis Works')
> ;title gone for log plots
> p2=plot(x,y,/ylog,yrange=[0.1,1],title='Title Error Log Y
> Axis',window_title='Title Error Log Y Axis')
> ;if you set the yrange, the title appears, but in the wrong place
> p3=plot(x,(y+2)*10,/ylog,yrange=[1,100],title='Title Error Log Y
> Axis',window_title='Title Error Log Y Axis')
> ;if you don't set the yrange, the title is gone
> p4=plot(x,(y+2)*10,/ylog,title='Title Error Log Y
> Axis',window_title='Title Error Log Y Axis')
> ----------------------------------------
>
> Any ideas?
|
|
|