/******************************************************************* * Making spin-plot varing the coefficient for variable x1 only * ********************************************************************/ %macro sp_plotbx1(outfile="c:\sp_plotbx1.gif", data=_spinplt , x1lo=-10, x1hi=10, x1by=1, x2lo=-10, x2hi=10, x2by=1, cons=0, bx1=0, bx2=0, bx1x2=0,bx1x1=0, bx2x2=0, bx1x1x2=0, bx1x2x2=0, title=Spin Plot, title2=' ', plot=, gopt=, angle=100, slen=6, bx1_lo=-5, bx1_hi=5, bx1_by=1, cmd=plot); * reset graph settings ; goptions reset=all; filename out clear ; filename out &outfile ; /* assign graphics options for the animation */ goptions gsfname=out dev=gifanim gcopies=0 iteration=0 delay=50 &gopt; %let bx1_lo_ = %sysevalf(&bx1_lo*100); %let bx1_hi_ = %sysevalf(&bx1_hi*100); %let bx1_by_ = %sysevalf(&bx1_by*100); * make graph going forward from bx1lo to bx1hi ; %do bx1_ = &bx1_lo_ %to &bx1_hi_ %by &bx1_by_ ; %let bx1 = %sysevalf(&bx1_ / 100); %if &bx1_ = &bx1_lo_ %then %do; goptions gsfmode=replace; %end; %if &bx1_ > &bx1_lo_ %then %do; goptions gsfmode=append; %end; /* %if &bx1_ >= &bx1_hi_ %then %do; goptions gepilog='3B'x; %end; */ %local bstring; %fixlen(&bx1, &slen); %let title =&title; %let title2=%str(y=&cons)%str(&bstring)%str(*x1+&bx2*x2+&bx1x2*x1*x2+&bx1x1*x1x1+&bx2x2+x2x2&bx1x1x2*x1x1x2+&bx1x2x2*x1x2x2); %sp_plot( angle=&angle,data=&data , x1lo=&x1lo, x1hi=&x1hi, x1by=&x1by, x2lo=&x2lo, x2hi=&x2hi, x2by=&x2by, cons=&cons, bx1=&bx1, bx2=&bx2, bx1x2=&bx1x2,bx1x1=&bx1x1, bx2x2=&bx2x2, bx1x1x2=&bx1x1x2, bx1x2x2=&bx1x2x2, title=&title, title2=&title2,plot=&plot,gopt=&gopt,cmd=&cmd, reset=no); %end; * make graph going backward from bx1hi to bx1lo ; %do bx1_ = &bx1_hi_ %to &bx1_lo_ %by -&bx1_by_ ; %let bx1 = %sysevalf(&bx1_ / 100); %if &bx1_ > &bx1_lo_ %then %do; goptions gsfmode=append; %end; %if &bx1_ <= &bx1_lo_ %then %do; goptions gepilog='3B'x; %end; %local bstring; %fixlen(&bx1, &slen); %let title =&title; %let title2=%str(y=&cons)%str(&bstring)%str(*x1+&bx2*x2+&bx1x2*x1*x2+&bx1x1*x1x1+&bx2x2+x2x2&bx1x1x2*x1x1x2+&bx1x2x2*x1x2x2); %sp_plot( angle=&angle, data=&data , x1lo=&x1lo, x1hi=&x1hi, x1by=&x1by, x2lo=&x2lo, x2hi=&x2hi, x2by=&x2by, cons=&cons, bx1=&bx1, bx2=&bx2, bx1x2=&bx1x2, bx1x1=&bx1x1, bx2x2=&bx2x2, bx1x1x2=&bx1x1x2, bx1x2x2=&bx1x2x2, title=&title, title2=&title2, plot=&plot, gopt=&gopt,cmd=&cmd, reset=no); %end; filename out clear ; goptions reset=all; %mend sp_plotbx1;