Transcript Slide 1

Introduction to SAS/Graph 9.2

Ken Barz [email protected]

Colorado Prevention Center 22Oct2009

In the Beginning, there was

• • – – Base SAS: Proc plot listing output only Think stick figures on a line printer – SAS/Graph 6-9.1.3: proc gplot ODS output as of SAS 8 – – Color graphics, sometimes crude, extra $$$ Complex  steep learning curve

The “Typical” SAS Programmer

• • • • Knowledge of data and proc steps Able to use libname, filename, title and footnote statements Statistical and reporting procedures Maybe some ODS and macro language

Learning SAS/Graph 6 – 9.1.3

• • • Open code vs. run groups Catalogs, grseg files, SAS registry, and hardware devices.

Options, goptions, greplay, symbols, axes, legends, line types, interpolation parameters, fonts, ODS, annotate, and …

The SAS/Graph 9.2 Approach (Do-Overs!)

• • • • Template-based graphics as opposed to device-based graphics. (e.g. proc template) Default output is to an industry standard (e.g. ODS listing destination=PNG file.) Full integration with ODS Output catalogs, grsegs, devices, goptions, annotate, global statements… all go away

The SAS/Graph 9.2 Approach (cont: Main Elements)

• • • • • Proc Template Statistical Graphics (SG) Procedures ODS Graphics Statement ODS Graphics Editor/Designer Graph Template Language (GTL)

Learning Proc Template via ODS

• • • • Learn the majority of ODS Use ODS Trace to determine SAS output objects Learn the capabilities and syntax of proc template Figure out how to combine it all

(Proc) Template-Based Graphics (SAS 9.2 +)

• • • Output is produced from a compiled ODS template of type STATGRAPH (other types include TABLE, COLUMN, FOOTER, HEADER, CROSSTABS, CELLVALUE, STYLE, TAGSET) Statistical Graphics procedures use templates (sgplot, sgpanel, …) provided by SAS Custom templates may be created with Proc Template, the Graphics Template Language (GTL) and Proc sgrender.

Minimum Template Code (defaults to sasuser.templat catalog) proc template

; define statgraph mytemplate ; begingraph; layout overlay; endlayout; endgraph; end;

run

;

Benefits of Template-Based 9.2 Graphics

• • • • • Graphics are clean, easy to code and produce Sizing determined by aspect ratio, not hardware device Tight integration with ODS, Styles and RTF/Unicode syntax Attributes cycle automatically Complex output is easily achieved

Statistical Graphics Procedures

• • • • SGPlot SGPanel SGScatter SGRender

Statistical Graphics Procedures (cont)

• • • Support for: By group processing Formats/Titles/Footnotes/Labels ODS Graphics statement manages settings

ODS Graphics Statement

• • • • Controls the runtime environment for producing template-based graphs Similar to the old goptions statement (with fewer options) Options for reset, size, image name and format, scale, dpi, antialiasing, … Enables the creation of default Statistical Procedure graphs

The ODS Graphics Editor/Designer (9.2 Phase 2)

• • • • Interactively add, edit or delete titles, footnotes, super/subscripts, labels, lines, symbols, … Change the style or the size of the graph Add annotation to the graph Available within SAS or as a stand-alone downloadable application

Graph Template Language

• • Creating a graph using GTL involves: Defining the structure of the graph using the GTL syntax in a STATGRAPH template that is specified on the TEMPLATE procedure.

Creating the graph by running the SGRENDER procedure to associate the appropriate data with the template.

Graph Template Language (cont)

• • • • • Graph layout options include: Overlay Gridded/Lattice Datapanel OverlayEquated Overlay3D

Graph Template Language (cont)

• • • • Graph templates allow customization of: Titles, footnotes, row and column headers, sidebars and text entries.

Linear, time and log axes.

Styles and attributes.

Appearance of grouped and non-grouped data.

Graph Template Language (cont)

• • • Graph templates also allow the use of: Dynamics Macro variables Conditional logic, expressions and functions

Conclusion

• • • • In version 9.2, SAS/Graph has been completely re written to a template-based orientation.

Clean and intricate graphs can now be produced via a straight forward coding method.

The old approaches to SAS/Graph still mostly work as well.

Thank you!