[Thread Prev][Thread Next][Index]

Ferret "how to": split Z-axis plot

	Ferret "how to": split Z-axis plot

> On Oct 20, 11:33am, Dingming Hu wrote:
> > Subject: different vertical scales in a cross-section
>    > I am trying to plot depth and latitude
>    > sections of temperature from a global OGCM with top 1000m ploted in the
>    > upper 1/3 of the panel and bottom 4000m in the bottom 2/3 of the panel.

My apologies,

I misunderstood this rather interesting question. Below is a script which
produces the desired plot - a plot in which the vertical axis is split into two
scale factors so that near-surface waters are "magnified" relative to the water
at depth.  The substance of this script was provided by Joachim Dengg

An usage example is contained in the comment lines of the script.

Note that the email system may introduce some spurious breaking of long lines
-- you may need to make some hand repairs. This script will be included with
the next anonymous ftp release.

	cheers - steve


\cancel mode verify
! split_z.jnl
! 10/95 - based on a script submitted by Joachim Dengg
! Description: make a CONTOUR,SHADE, or FILL plot with a split vertical axis
! producing a "magnified" view of the near-surface waters

! usage:	       $1       $2    $3  $4  $5   $6     $7
!   yes? GO split_z command  qualifs var top mid bottom split
! $1 - the plot command (SHADE,FILL or CONT)  (default, "FILL")
! $2 - qualifiers to the plot command - /LEVELS and /PALETTE (default, none)
! $3 - the variable to be plotted (use quotation marks if it contains commas)
! $4 - the depth at the      top    of the plot (default=0)
! $5 - the depth at the split point of the plot (default=1000)
! $6 - the depth at the    bottom   of the plot (default=5000)
! $7 - the fractio of the page given to the upper viewport (default=0.33)

! example:
!   yes? SET DATA levitus_climatology
!   yes? go split_z FILL "/lev=(0,4,.5)(0,30,2)" "temp[X=160W,Y=45S:45N]" 0 500
4000 0.4
! Note 1: a taller, thinner window looks nicer ...
!         yes? SET WINDOW/ASPECT=1
! Note 2: this procedure will not work in a viewport since it uses viewports

! set default values and check for argument errors
define symbol cmnd $1"FILL"
define symbol quals $2"set_up"
define symbol var  $3"<Usage: GO split_z cmnd quals var top mid bottom split"
define symbol topZ $4"0"
define symbol splitZ $5"1000"
define symbol botZ $6"5000"
define symbol vp_split `1-$7".33"`

! clear the screen
cancel viewports

! define viewports for top and bottom panels
! "/text=..." scales the viewports consistently
define viewport/text=.6/y=($vp_split),1 sp_u   ! upper
define viewport/text=.6/y=0,($vp_split) sp_l   ! lower

! the upper frame with the Y axis coming right to its bottom
set view sp_u
define symbol upper_axlen `($ppl$yorg)+($PPL$YLEN)`
define symbol orig_yorg ($ppl$yorg)
ppl origin ,0
ppl axlen ,($upper_axlen)
(($cmnd)/($quals)/z=($topZ):($botZ)/ylimits=($topZ):($splitZ)/set_up ($var))
ppl title   	! no title under plot
ppl axset 1,0	! no lower axis
ppl xlab	! no X axis label
ppl shakey 0	! no key drawn for upper half
ppl ($cmnd)
ppl origin ,($orig_yorg)	! restore Y origin

! the lower frame with the Y axis coming almost to its top
set view sp_l
define symbol axis_gap 0.15
define symbol lower_axlen `($VP_HEIGHT)-($ppl$yorg)-($axis_gap)`
ppl axlen ,($lower_axlen)
(($cmnd)/($quals)/z=($topZ):($botZ)/ylimits=($splitZ):($botZ)/set_up ($var))
ppl axset 0,1	! no upper axis
ppl ylab	! no Y axis label on this part
ppl labs

! set up the color key
define symbol lower_right_x `($ppl$xorg)+($ppl$xlen)`
define symbol lower_right_y `($ppl$yorg)`
! see "Plot Plus for Ferret Manual" for shakey description
ppl shakey

! plot the lower half and the key
ppl ($cmnd)

! clean up
ppl axset 1,1
cancel symbol cmnd
cancel symbol quals
cancel symbol var
cancel symbol topZ
cancel symbol splitZ
cancel symbol botZ
cancel symbol vp_split
cancel symbol upper_axlen
cancel symbol orig_yorg
cancel symbol lower_right_x
cancel symbol lower_right_y
cancel symbol axis_gap
cancel symbol lower_axlen
set mode/last verify

[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / ERL / PMEL / TMAP

Contact Us | Privacy Policy | Disclaimer | Accessibility Statement