data one;
input time time5. +1 day date7. temp;
negday=-day;
datalines;
0:00 01jan96 22
6:00 01jan96 33
12:00 01jan96 45
18:00 01jan96 37
0:00 08jan96 24
6:00 08jan96 18
12:00 08jan96 24
18:00 08jan96 20
0:00 15jan96 36
6:00 15jan96 30
12:00 15jan96 48
18:00 15jan96 41
0:00 22jan96 40
6:00 22jan96 33
12:00 22jan96 38
18:00 22jan96 35
0:00 29jan96 16
6:00 29jan96 13
12:00 29jan96 24
18:00 29jan96 20
;
proc means data=one noprint;
var day;
output out=meands min=mindate max=maxdate;
run;
data _null_;
set meands;
call symput("mindate",mindate);
call symput("maxdate",maxdate);
run;
data custom;
retain fmtname 'datefmt' type 'N';
do day=&mindate to &maxdate by 1;
label=put(day,date7.);
start=(-day)-1;
end=-day;
output;
end;
run;
proc format cntlin=custom;
run;
/* default order for y-axis */
proc g3d data=one;
scatter day*time=temp/xticknum=4 yticknum=5 shape='pillar'
zmin=0 zmax=50 grid zticknum=6;
format day date7. time time5.;
title h=5 pct 'Default Ordering of Dates on Y Axis';
footnote h=3 pct j=r 'Figure 4';
run;
quit;
/* reverse order for y-axis */
proc g3d data=one;
scatter negday*time=temp/xticknum=4 yticknum=5 shape='pillar'
zmin=0 zmax=50 grid zticknum=6;
format negday datefmt. time time5.;
label negday='DAY';
title h=5 pct 'Reversed Ordering of Dates on Y Axis';
footnote h=3 pct j=r 'Figure 5';
run;
quit;