Overlaying a time series on a 2D plot
Question:
How can I plot a time series on top of a SHADE or CONTOUR plot?
Example:
Explanation:
...
This FAQ describes a situation that has been remedied in Ferret/PyFerret versions beginning with V7. In versions higher than that, you may overlay a time series on a 2-D plot with no further adjustments.
...
Previous to the above versions, in order successfully to overlay a time series plot over a 2-dimensional plot with a time axis (a Hovmoller diagram) it is essential that the time axis of the data passed to the SHADE or CONTOUR command be in units of HOURS.
Solution:
These commands illustrate the problem and the work-around:
! define a 2D field in YT with a time axis in units of DAYS DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":1/UNITS=DAYS tdays DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax DEFINE GRID/y=yax/t=tdays gg SET GRID gg LET my_var = 10*cos(T/2000)*EXP((-1)*y/20) ! make a Hovmoller plot SHADE my_var ! (THIS WILL NOT WORK --> try to overlay a time series. The time scaling is off.) PLOT/OVER my_var[Y=@loc:-4]
! If running Ferret v6.96 or PyFerret 1.2, the above PLOT/OVER command draws the line correctly, and we are done.
! But this will work around the problem DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":24/UNITS=HOURS thours SHADE my_var[GT=thours] PLOT/OVER my_var[Y=@loc:-4]
The plot above was created with:
use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf" set region/x=40w/y=10n:60n define axis/t="15-jan-1982":"15-dec-1983":24/units=hours thours shade sst[gt=thours] plot/over sst[y=30n]