UCLA Academic Technology Services HomeServicesClassesContactJobs
Help the Stat Consulting Group by giving a gift             
Loading

SAS Code Fragments
Proc gplot, All Things Considered

Example 1 using the pointlabel option. You can get the sample data set crime here.

goptions reset=all;
axis1 label=(a=90 'Crime Per 1,000,000');
symbol1 pointlabel = ("#state" h=3 font=swiss)  value=none;
proc gplot data=crime;
  plot crime*pctmetro = 1 / vaxis=axis1;
run;
quit;

Example 2 of setting up the output file type, labeling, etc. 

data set1;
  do group = 1 to 3;
  do x = -50 to 50;
 if group =1 then  dv = 9.09 + .09*x; 
 if group =2 then  dv = 7.02 - .08*x; 
 if group =3 then  dv = 4.94 - .26*x;
output;
  end;
  end;
 run;
 proc sql noprint;
   select max(dv) into :y1-:y3
   from set1
   where set1.x = 48
   group by group
   ;
quit;
%put _user_;
 data anno;
   length function color text $8;
    
   function = 'label';
   size     =  1;
   xsys     = '2';
   ysys     = '2';
   when     = 'a';
   x= 45 ; /*the x-coordinate for the text*/ 
   y= &y1+1; /*the y-coordinate*/
   text=left("GROUP1"); 
   color = 'black'; 
output;
   x= 45 ; 
   y= &y2+3;
   text=left("GROUP2"); 
   color = 'red';
output;
   x= 45 ; 
   y= &y3+3; 
   text=left("GROUP3"); 
   color = 'blue';
output;
run;

goptions reset = all;

goptions  ftext = swiss htitle = 5 htext = 3 gunit = pct 
border cback = white hsize = 4in vsize = 4in;
filename outgraph 'e:\temp\mygraph.gif';
*goptions gsfname = outgraph dev = gif373 ;
/* The size is about 3.93in by 2.95in. */
goptions gsfname = outgraph dev = gif570; 
/* The size is about 6in by 4.5in. */ 

title "This is my graph";
title2 "A second title";
axis1 order = (-10 to 25 by 5) offset = (3,0) label = (a=90 'My dev') minor=none;
axis2 order = (-12 to 52 by 10) offset = (5,5) label=('My X') minor = none;

symbol1 i = join c = black l=5 v = plus ;
symbol2 i = join c = red l= 3 w = 5;
symbol3 i = join c = blue ;

legend label=none value=(h=2 font=swiss 'group1' 'group2' 'group3')
       position=(top right inside) mode=share cborder=black;

proc gplot data = set1;
  plot dv*x=group / vaxis = axis1 haxis=axis2 legend = legend1 anno = anno;
run;
quit;

Example 3, a variation of example 2.

legend label=none value=(h=2 font=swiss 'group1' 'group2' 'group3')
       position=(bottom right outside) mode=protect cborder=black;

proc gplot data = set1;
  plot dv*x=group / vaxis = axis1 haxis=axis2 legend = legend1 anno = anno;
run;
quit; 

Example 4 show how to save multiple graphs to multiple files all at once. Instead of specifying the file name for a single graph, we specify a location, that is a file folder for all the graphs. The best way of saving the graphs is to create a new folder and save all the graphs to the new folder. In this example, the variable schtyp takes two values. We first create a folder called "schtyp" in d:\temp. Then after running the code below, we will have two graphs, plot.gif and plot1.gif located in d:\temp\schtyp.

filename grafout 'd:\temp\schtyp';
goptions reset=all gsfname=grafout 
         dev = gif373 gsfmode=replace;
proc sort data = hsb2;
  by schtyp;
run;
proc gplot data = hsb2;
  by schtyp;
  plot math*write;
run;
quit; 

How to cite this page

Report an error on this page or leave a comment

UCLA Researchers are invited to our Statistical Consulting Services
We recommend others to our list of Other Resources for Statistical Computing Help
These pages are Copyrighted (c) by UCLA Academic Technology Services


The content of this web site should not be construed as an endorsement of any particular web site, book, or software product by the University of California