BG writes:
> scale_vector did the job, thanks! with scale_vector, GridData,
> y=alog10(y), z=alog10(z) and FSC_Surface.pro I got something which
> will be good enough to show my advisor... I think I might look into
> getting scale_vector.pro to make log scale data more evenly spaced,
> but it works great for right now.
>
> Back to FSC_Surface_log.pro though... I modified it to handle a log
> scale y-axis in addition to the the log scale z-axis you added:
>
> ------------------------------------------------------------
> ~line 1288:
> yAxis = Obj_New("IDLgrAxis", 1, Color=[0,255,0], Ticklen=0.1, $
> Minor=4, Title=ytitle, Range=yrange, Exact=exact[1], /LOG)
>
> ~line 1306 & ~line 1315:
> yrange_surf = [10^yrange[0], 10^yrange[1]]
>
> ~line 1330:
> thisSurface->SetProperty, XCoord_Conv=xs, $
> YCoord_Conv=yrange_surf, ZCoord_Conv=zrange_surf
> ; originally ZCoord_Conv=zsurf...
> ; shouldn't it be zrange_surf instead, b/c "zsurf" d.n.e. ?
> ------------------------------------------------------------
>
> these modifications make the axes look perfect, but somehow only a
> slice of the data gets plotted and the data is plotted about 1 order
> of magnitude too high.
I'm not sure what you mean by "about 1 order of
magnitude too high." The Z range looks fine to me.
But while the Y axis looks like a log axis, the grid
looks linear (as I am sure it is). Probably your
axis doesn't correspond to the gridded data. Somehow
you have to grid the data on a log grid. I'm not
sure how to do that (although I suspect it is probably
possible with GRIDDATA). If you could figure out how to
do that, your problems might be solved.
>
> with the above modifications to FSC_Surface_log.pro, here's an example
> program which, on my machine, only shows a slice of the data:
>
> ;--------------------------------------------------
> pro test_surface
>
> x=[180., 190., 200., 210.]
> y=[1.e-8, 1.e-7, 1.e-6, 1.e-5]
> z=[1.e-3, 1.e-2, 1.e-1, 1.]
>
>
> grid=GridData(x, y, z)
>
> s = Size(grid, /Dimensions)
> yy = Scale_Vector(Findgen(s[1]), Min(y), Max(y))
> xx = Scale_Vector(Findgen(s[0]), Min(x), Max(x))
>
> FSC_Surface_log, grid, xx, yy, Position=[0,1,0,1,0,1]
>
>
> end
> ;--------------------------------------------------
>
> does that show up incorrectly for you? Any ideas?
I think what shows up is what I expected would show
up. But I think the Y axis doesn't reflect the actual
Y data values.
I'm really shaky when it comes to log axes and
object graphics, though. If I give any more advice
it will be the blind leading the blind. :-)
Cheers,
David
P.S. I mean, more than usual.
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
|