title 'Scatterplot matrices with PROC PLOT and PROC INSIGHT'; %include data(auto) ; data AUTO; Set AUTO; if REP77 ^=. and REP78 ^=.; PRICE = PRICE / 1000; WEIGHT= WEIGHT/ 1000; REPAIR = sum(of REP77 REP78); Label weight= 'WEIGHT'; options ls=90; *-- True scatterplot matrix; proc plot data=auto vpercent=33 hpercent=33 nolegend; plot price*price=' ' price*mpg=origin price*weight=origin mpg*price=origin mpg*mpg=' ' mpg*weight=origin weight*price=origin weight*mpg=origin weight*weight=' '; *-- in this form, the diagonal cells are omitted; proc plot data=auto vpercent=33 hpercent=33 nolegend; plot (price mpg weight repair) * (price mpg weight repair) = origin; *-- The SCATTER macro calls PROC INSIGHT to do the plot; * Similar to the statements: * PROC INSIGHT DATA=BASEBALL; * SCATTER PRICE MPG WEIGHT; %scatter(data=baseball, var=price mpg weight, group=origin);