Simple SAS Graphs with ODS

Over the many decades SAS has developed three distinct collections of graphics commands. The latest - and the most fully featured - is usually called ODS Graphics (Ouput Delivery System).

ODS graphics can be used in two ways. One is through PROC SGPLOT and several related ODS procedures. Another is through the graphics options built into most statistical procedures.

Using ODS graphics, many statistical procedures automatically create the graphs that are most commonly needed for a particular analysis. In addition, many more procedures have options to produce plots related to their analysis.

You can use ODS to:

  • save statistical graphics in various graphics or document formats,
  • select components of the statistical graphics output, and
  • use styles and templates to customize the appearance of statistical graphics.

ODS for tables of statistical output is documented in Saving SAS Output Files.

Designing Your Own Plots and Charts

See Common SAS Plots for a quick start to using PROC SGPLOT. This will also illustrate how many of the statistical procedures can be used to produce the same (or nearly the same) graphs.

Automatic Graphics

The example below illustrates just how simple it is to generate graphics. The following statements invoke the REG procedure and fit a simple linear regression model.

/* setup, proc reg requires numeric variables */
data class;
    set sashelp.class;
    female = sex eq "F";
    run;
/* automatic diagnostic graphs */
proc reg data=class;
    model height = age female;
    run; quit;
                             The REG Procedure
                               Model: MODEL1
                        Dependent Variable: Height 

                  Number of Observations Read          19
                  Number of Observations Used          19

                           Analysis of Variance
 
                                   Sum of          Mean
 Source                  DF       Squares        Square   F Value   Pr > F

 Model                    2     349.50473     174.75236     22.61   <.0001
 Error                   16     123.65948       7.72872                   
 Corrected Total         18     473.16421                                 

           Root MSE              2.78006    R-Square     0.7387
           Dependent Mean       62.33684    Adj R-Sq     0.7060
           Coeff Var             4.45973                       

                           Parameter Estimates
 
                        Parameter       Standard
   Variable     DF       Estimate          Error    t Value    Pr > |t|

   Intercept     1       27.36034        5.95866       4.59      0.0003
   Age           1        2.72759        0.43981       6.20      <.0001
   female        1       -2.83621        1.27974      -2.22      0.0415

With PROC REG, the graphical output automatically produced by ODS consists of a diagnostics panel, and a residual plots panel. These are shown below.

Model: MODEL1

Dependent Variable: Height

Panel of fit diagnostics for Height. Fit Diagnostics for Height 0.706 Adj R-Square 0.7387 R-Square 7.7287 MSE 16 Error DF 3 Parameters 19 Observations Proportion Less 0.0 0.4 0.8 Residual 0.0 0.4 0.8 Fit–Mean -5 0 5 10 -7 -5 -3 -1 1 3 5 7 Residual 0 10 20 30 Percent 0 5 10 15 20 Observation 0.00 0.05 0.10 0.15 0.20 Cook's D 50 55 60 65 70 Predicted Value 50 55 60 65 70 Height -2 -1 0 1 2 Quantile -4 -2 0 2 4 Residual 0.10 0.15 0.20 0.25 0.30 Leverage -2 -1 0 1 2 RStudent 55 60 65 70 Predicted Value -2 -1 0 1 2 RStudent 55 60 65 70 Predicted Value -4 -2 0 2 4 Residual
Panel of scatterplots of residuals by regressors for Height. Residual by Regressors for Height 0.0 0.2 0.4 0.6 0.8 1.0 female 11 12 13 14 15 16 Age -4 -2 0 2 4 Residual

Optional Plots

Many statistical procedures incorporate optional PLOT requests. For example, with PROC REG, you could request partial plots - a partial plot shows the effect of each variable after controlling for the other variables in the model (the slope is the same as the model coefficient).

To produce partial plots with PROC REG, add a partial option to the MODEL statement.

proc reg data=class;
    model height = age female / partial;
    run; quit;
Model: MODEL1
Partial Regression Residual Plot

Panel of partial regression scatterplots by regressors for Height.


Saving Graphics

By default, SAS includes these graphics as part of the HTML output it produces. However, all this output is deleted when you close your SAS session, including the graphics. To save graphics (and other output) you need to redirect output into a file using ODS commands.

If you save your output as a PDF, Word, or HTML5 file, the graphics are included within the file.

ods pdf file="example.pdf";
proc reg data=sashelp.class;
  model height = age;
  run;
ods pdf close;

If you save your output as an HTML file, the graphics are saved as separate graphics files that are linked to the HTML file.

ods html file="example.html";
proc reg data=sashelp.class;
  model height = age;
  run;

If you save your output as a text (listing) file, you must turn on ODS GRAPHICS, and then the graphics are saved as separate graphics files.

ods listing file="example.lst";
ods graphics on;
proc reg data=sashelp.class;
  model height = age;
  run;

Graphics File Formats

Each output document type has it’s own default graphics file type. You can specify a different file type, depending on the output destination. The most common defaults are PNG and SVG files.

To choose an alternative graphics file format, you use an ODS GRAPHICS statement. For example to save graphics as JPEG files, you might use

ods listing file="example.lst";
ods graphics on / outputfmt=jpeg;
proc reg data=sashelp.class;
  model height = age;
  run;

Customizing The Appearance of Your SAS Output

With ODS you can change the appearance of most of your SAS output. To change the overall look of your output, use ODS styles. To further customize the appearance and table of your output, you can change the templates SAS uses to generate output or even create your own templates. A brief overview of templates is provided in Redirecting and Customizing Tabular Output in SAS. For more detailed information, please refer to SAS's on-line manual.

ODS Styles

ODS styles control the overall look of your output. A style definition provides formatting information for specific visual aspects of your SAS output. For ODS graphics, this includes the appearance of line and marker properties in addition to font and color information.

You can specify a style using the style option in the ODS destination statement. Each style produces output with the same table, but with a somewhat different visual appearance. Of the SAS-supplied styles, SAS recommends four for use with ODS Graphics: ANALYSIS, DEFAULT, JOURNAL, and STATISTICAL. In the example below, the JOURNAL style is specified:

ods latex style=journal; 

proc reg data=Class;
   model Weight = Height;
quit;

ods latex close;

Once you start using ODS you will find that you need details not contained in this overview document: see SAS's comprehensive ODS user guide.

Last Revised: 9/27/2024