/**********************************************************************/ data sales; input date date7. sales; cards; 01jan91 200 01feb91 300 01mar91 250 01apr91 300 01may91 400 01jun91 325 run; /**********************************************************************/ data sales; input month $ sales; date=input('01'||month,date7.); cards; jan91 200 feb91 300 jun91 325 run; /**********************************************************************/ proc gplot data=sales; plot sales*date; run; /**********************************************************************/ proc gplot data=sales; plot sales*date; format date date7.; run; /**********************************************************************/ proc gplot; plot sales*date / haxis='01jan91'd to '01jun91'd by month; format date date7.; run; /**********************************************************************/ axis1 order='01jan91'd to '01feb91'd by 2; /**********************************************************************/ axis1 order='2:00:00't to '2:05:00't by 30; /**********************************************************************/ proc gplot data=carpool; plot riders*date / haxis='01sep92'd to '11sep92'd by weekday; format date date5.; run; /**********************************************************************/ proc gplot data=saledata; plot sales*date / haxis='01jan92'd to '01apr92'd by semimonth; format date date5.; run; /**********************************************************************/ proc gplot data=saledata; plot sales*date/haxis='01jan91'd to '01jan92'd by month2; format date monyy5.; run; /**********************************************************************/ proc format; value myfmt '20dec92'd='Chanukah' '25dec92'd='Christmas' '01jan93'd='New Year' '19dec92'd, '02jan93'd=(|date5.|) other=(|day2.|); axis1 value=(a=80 r=0) minor=none label=('U.S. Holiday Season') order='19dec92'd to '02jan93'd; proc gplot; plot value*date / haxis=axis1; format date myfmt.; run; quit; /**********************************************************************/ proc gplot; plot CPU*time / haxis='18:00't to '23:00't by hour, '0:00't to '17:00't by hour; format time time5.; run; /**********************************************************************/ data one; input startime time5. count; if startime gt '12:00't then date='30sep92'd; else date='01oct92'd; datetime=dhms(date,hour(startime),minute(startime), second(startime)); cards; 16:00 12.3 17:00 5.7 18:00 8.6 19:00 9.0 20:00 15.7 21:00 10.5 22:00 8.1 23:00 1.5 0:00 11.3 1:00 6.6 2:00 3.5 3:00 7.6 4:00 2.4 5:00 13.8 6:00 14.0 7:00 4.9 8:00 5.0 run; proc gplot data=one; plot count*datetime / haxis='30sep92:16:00'dt to '01oct92:08:00'dt by hour2; format datetime tod5.; run; /**********************************************************************/ data sales; input month date7. sales; cards; 01sep91 400 01oct91 420 01nov91 450 01dec91 475 01jan92 300 01feb92 400 01mar92 350 01apr92 400 01may92 200 01jun92 225 01jul92 300 01aug92 450 01sep92 400 01oct92 320 01nov92 450 01dec92 475 01jan93 300 01feb93 400 run; /* determine most recent month in data */ proc means data=sales max noprint; var month; output out=months max=max; run; /* calculate beginning month and store */ /* beginning and ending month as macro variables */ data _null_; set months; min=intnx('month',max,-11); call symput ('monthmin',left(put(min,date7.))); call symput ('monthmax',left(put(max,date7.))); run; /* generate plot, using macro variables in axis */ /* specification */ proc gplot data=sales; plot sales*month / haxis="&monthmin"d to "&monthmax"d by month; format month monname3.; symbol1 i=join; title h=5 pct 'Plot of last 12 months'; run; /**********************************************************************/ axis1 order='01jan91'd to '01mar92'd by month value=(t=1 'J' j=c '1991' t=13 'J' j=c '1992'); proc gplot data=sales; plot sales*date / haxis=axis1; format date monname1.; run; /**********************************************************************/ data sales; input date date7. sales; cards; 01jan91 200 01feb91 300 01mar91 250 01apr91 300 01may91 400 01jun91 325 01jul91 400 01aug91 350 01sep91 400 01oct91 420 01nov91 450 01dec91 475 01jan92 200 01feb92 300 01mar92 250 run; /* determine beginning and ending dates */ proc means data=sales min max noprint; var date; output out=times min=datemin max=datemax; run; data _null_; set times; /* Jan 1 of first year in data */ min=(intnx('year',datemin,0)); /* Jan 1 of last year in data */ max=(intnx('year',datemax,1)); /* total number of ticks */ nticks=intck('month',min,max+1); /* store number of ticks as macro var */ call symput('nticks',nticks); /* &mindate is Jan 1 of first year */ call symput ('mindate',left(put(min,date7.))); /* &maxdate is Jan 1 of last year */ call symput ('maxdate',left(put(max,date7.))); do i=1 to nticks by 12; call symput('year'||left(i), left(put(intnx('month',min,i-1), year4.))); end; run; /* define the macro */ %macro haxis; axis1 order="&mindate"d to "&maxdate"d by month value=( %do i=1 %to &nticks %by 12; T=&i "J" J=C "&&year&i" %end; ); %mend; /* invoke the macro %haxis; proc gplot data=sales; plot sales*date / haxis=axis1; format date monname1.; run; quit; /**********************************************************************/