SAS® ODS Statistical Graphs   

Most Popular Links

 ODS Graph Tip Sheet, ODS Layout Tip Sheet
SAS Paper Tips, HOW

 Getting Started with SAS SG

 Pharmaceutical Industry Gallery

[Forest Plots Macro]

Statistically Speacking Blog Basics

Proc SGPLOT Example bookTwo

 Gallery 1 

(By SAS Procedure - Proc GPLOT, etc.)

 Gallery 2 

(By Visual Examples)

 Galleries: SAS 9.2, SAS 9.3, and SAS 9.4 Planet

SAS 9.2 and 9.3 Graph Course Notes

ODS Statistical Graphics Gallery 

Bar Chart Gallery

Health and Life Sciences Gallery

Training Videos:

SAS Graphs, the Final Fontier (Summary Sheet)

To Impute or Not Impute Average or Non-Missing Values

Below is a collection of SAS® ODS Statistical Graphs papers and Annotate papers.  Often graphs are saved as PDF files.  See also ODSStatistical Analysis and Survival Analysis.  See SAS/Graph e-book.  

Get a jump start on creating custom graphs using SAS code from the galleries.  Best to copy sample SAS code and then replace with your dataset and variable names.  Note that you may first need to change the dataset structure to summary level from detail level.  See SAS reference on drivers.  See the SAS GRAPHS, the Final Frontier training session.  See Advanced ODS Graphics: Steps to think about when creating a graph blog.

SAS/STAT 14.1 User’s Guide Statistical Graphics Using ODS, Ex1, Ex2, Ex3, Ex4

Steps for applying SAS Graphs 
1) Search (Menu, Visual, SAS procedure) for SAS examples before trying to reinvent the wheel

2) Plan for simple solutions (options, SAS versions, procedures) instead of complex solutions

3) Minimize customization as much as possible, explore and use PROC SGPLOT for example

4) Don't be afraid to contact the SAS Graph experts for help

5) Take advantage of SAS code/macros such as the forest plots

6) Use the power of mindmaps (organize, guide, resource)

7) Be aware of GOPTIONS (GUNIT, ROTATE, GSFNAME, DEVICE, HSIZE, VSIZE) or ODS GRAPHICS, SAS versions (9.2, 9.3) and output options (JPEG, PNG, RTF, PDF, etc.)

Graph Task
SAS 9.2 and before
SAS 9.3 and after
 General Plots PROC GPLOT (before SAS 9.2)


 SAS GTL with 9.3

(See Survival Plots for PROC SGPLOT enhancements)
 Forest Plot ODS OUTPUT;

 Combine plots from Proc SGPLOT, Proc SGPANEL or Proc LIFETEST for example

  (Tip Sheet)

 See Statistical Analysis for five methods to create survival analysis based on these factors:

                         SAS 9.2                                    SAS 9.3
   BASIC            PROC LIFETEST                         PROC LIFETEST, PROC SGPLOT
   OPTIONS        PROC LIFETEST                         PROC LIFETEST, PROC SGPLOT

  1) SAS 9.2, BASIC: Standard direct method with PROC LIFETEST in SAS 9.2

  2a) SAS 9.2, OPTIONS: Direct method with PROC LIFETEST to include At Risk Table within   survival plot in SAS 9.2

  2b) SAS 9.2, OPTIONS: Direct method with PROC LIFETEST to include At Risk Table and 95%   CI band within survival plot in SAS 9.2

  3) SAS 9.2, CUSTOMIZE: Indirect method with output dataset from PROC LIFETEST,   annotate dataset for group summary or error bars, PROC GPLOT the output dataset and PROC GREPLAY to combine plots

  4) SAS 9.3, BASIC WITH OPTIONS: Indirect method with output data set from PROC LIFETEST, PROC SGPLOT in SAS 9.3

  5) SAS 9.3, CUSTOMIZE: Indirect method with output dataset from PROC LIFETEST, annotate dataset, PROC SGPLOT the output dataset, STEP, SCATTER


  ANNO dataset 



 Main Factors
 Options / Plot Examples (Line, Scatter, )
 Overall Distribution

 Distribution of Cholesterol / Histogram of Causes of Cholesterol
 By Group / Clustered

 Cholesterol by Sex / Olympic Countries by Region and Population Group
 Overlay Plots / Scatter Plots

 Two Lab Tests, Overall Mean with Patient plots
 By Panels (Rows / Columns)

 Multiple Lab Tests
 Patient Profiles

 Savvy Presentation
Review data by Patient to get big picture of baseline, efficacy and safety:  
 a. Combine data from several domains (DM, LB, AE, etc.)
 b. Example such as Two Lab Tests by Patient or by Panel with median measurements
 c. Information used to make clinical decisions (color for severity, dates/days, AE/CM labels, macro variables,  boundary symbols, bar sort order)  
 d. Narratives only (readable clinical data as paragraphs)
 e. Graph annotations (separate dataset)  

 Additional Stats / Ellipse

 Standard Errors, Min, Max, Median
 Bars / Bands / Histogram

 Vertical, Horizontal

 ODS Style

 Increase color to red based on severity

SAS Example (What is the main focus?)
PROC SGPLOT using 9.3 (See SAS Paper)

 1. Overall distribution of continuous variable

title 'Distribution of Cholesterol'; proc sgplot data=sashelp.heart; histogram cholesterol; density cholesterol / type=normal; density cholesterol / type=kernel; keylegend / location=inside position=topright across=1; run;

 2. By Group distribution of continuous variable 

title 'Cholesterol by Sex'; proc sgpanel data=sashelp.heart; panelby sex / layout=columnlattice onepanel novarname; histogram cholesterol / fillattrs=graphdata3; run;

 3. Overall frequency of categorical variable 

title 'Deaths by Cause'; proc sgplot data=sashelp.heart; hbar deathcause / datalabel fillattrs=graphdata2; yaxis display=(nolabel); xaxis grid; run;

 4. Timeline Patient Profiles of adverse events as separate episodes

title "Adverse Events for Patient Id = &pid (SAS 9.3)"; proc sgplot data=AE_Cap dattrmap=attrmap;

format aestdate date7.; refline 0 / axis=x lineattrs=(color=black); highlow y=aeseq low=aestdy high=aeendy / type=bar group=aesev

lineattrs=(color=black pattern=solid) barwidth=0.8 lowlabel=aedecod highcap=highcap attrid=Severity;

scatter y=aeseq x=aestdate / x2axis markerattrs=(size=0); xaxis grid display=(nolabel) offsetmax=0.02

values=(&minday2 to &maxday by 2); x2axis display=(nolabel) offsetmax=0.02 values=(&mindate2 to &maxdate); yaxis grid display=(noticks novalues nolabel); run;

 5. Timeline Patient Profiles of adverse events as single episodes

title "Adverse Events for Patient Id = &pid (SAS 9.3)"; proc sgplot data=ae_by_name dattrmap=attrmap; format aestdate date7.;

refline 0 / axis=x lineattrs=(color=black); highlow y=aedecod low=aestdy high=aeendy / type=bar group=aesev

lineattrs=(color=black pattern=solid) barwidth=0.8 lowlabel=aename highcap=aehicap attrid=Severity;

scatter y=aedecod x=aestdate / x2axis markerattrs=(size=0); xaxis grid display=(nolabel) offsetmax=0.02 values=(&minday2 to &maxday by 2); x2axis display=(nolabel) offsetmax=0.02 values=(&mindate2 to &maxdate); yaxis grid display=(noticks novalues nolabel); run;

 6. Timeline Patient Profiles of conmeds with adverse event severity lines

title "Concomitant Medications for Patient Id = &pid (SAS 9.3)";

proc sgplot data=cmmeds noautolegend nocycleattrs; refline 0 / axis=x lineattrs=(thickness=1 color=black);

refline mild / axis=x lineattrs=(pattern=solid thickness=2 color=cx00af00) name='mi' legendlabel='Mild';

refline moderate / axis=x lineattrs=(pattern=solid thickness=2 color=cxcfaf00)

name='mo' legendlabel='Moderate'; refline severe / axis=x lineattrs=(pattern=solid thickness=2 color=cxaf0000)

name='se' legendlabel='Severe'; highlow y=cmseq low=cmstdy high=cmendy / type=bar barwidth=0.8 lowlabel=cmmed

lowcap=cmlocap highcap=cmhicap fillattrs=(color=cx9BDCF2); scatter y=cmseq x=cmstdate / markerattrs=(size=0) x2axis;

yaxis display=(nolabel noticks novalues) min=0; xaxis grid label='Study Days' offsetmax=0.02 values=(&minday2 to &maxday by 2);

x2axis notimesplit display=(nolabel) offsetmax=0.02 tickvalueformat=date7. values=(&mindate2 to &maxdate); keylegend 'mi' 'mo' 'se' / title='Severity'; run;

 7. Timeline Patient Profiles of lab with adverse event severity lines

title "Vital Statistics for Patient Id = &pid";

proc sgpanel data=vs_with_events noautolegend nocycleattrs; panelby id / onepanel layout=rowlattice uniscale=column novarname spacing=10;

band x=x lower=low upper=high / transparency=0.6 fill nooutline fillattrs=(color=lightblue);

refline 0 / axis=x lineattrs=(thickness=1 color=black); refline mild / axis=x lineattrs=(thickness=2 color=cx00af00) name='mi'

legendlabel='Mild'; refline moderate / axis=x lineattrs=(thickness=2 color=cxcfaf00) name='mo'

legendlabel='Moderate'; refline severe / axis=x lineattrs=(thickness=2 color=cxaf0000) name='se'

legendlabel='Severe'; series x=vsdy y=vsstresn / group=vstpt lineattrs=(pattern=solid thickness=3)

nomissinggroup name='bp' markerattrs=(symbol=circlefilled size=11);

scatter x=vsdy y=vsstresn / markerattrs=(symbol=circlefilled size=11) group=vstpt;

scatter x=vsdy y=vsstresn / markerattrs=(symbol=circlefilled size=5 color=white)

group=vstpt; highlow y=yhigh low=xlow high=xhigh / highlabel=id labelattrs=(size=12);

keylegend 'bp' / title='Vitals:' across=3 valueattrs=(size=5)

titleattrs=(size=8); keylegend 'mi' 'mo' 'se' / title='Adverse Events:' across=3 valueattrs=(size=7)

titleattrs=(size=8); rowaxis grid display=(nolabel) offsetmax=0.1;

colaxis grid label='Study Days' offsetmax=0.02 values=(&minday2 to &maxday by 2); run;

SAS Example (What is the main focus?)

PROC SGPLOT using SAS 9.2 (See SAS PaperSAS Blog)

 1. Spaghetti Plots by Lab Test and Patient - useful to compare patient lab trends.

proc sgplot data = labdata; by labtest;
series x = visit y = result / group = subjid; xaxis values = (-6 to 105 by 7); run; 

 2. A Panel of Line Plots for one Laboratory Test - useful to compare one lab trend across patients.

proc sgpanel data = labdata (where = (labtest = "Creatinine"));
panelby subjid / rows=4 columns=4; series x = visit y = result;
colaxis values = (-6 to 105 by 7); run; 

3. A Panel of Line Plots for one Subject - useful to compare multiple lab trends per patient.

proc sgpanel data = labdata; 

panelby labtest / columns = 1 rows = 4 uniscale = column novarname; 

series x = visit y = result; 

by subjid;colaxis values = (-6 to 105 by 7); run;

 4. A 2X2 Panel of Line Plots for one Subject - useful to compare multiple lab trends per patient.

proc sgplot data = labdata (where = (subjid = "1001"));
by labtest; series x = visit y = result;

 5. A Panel of Line Plots by Subject and Laboratory - useful to compare selected lab trends across patients.

proc sgpanel data = labdata;
panelby subjid labtest / layout = lattice uniscale = column columns = 4 rows = 4 novarname;
series x = visit y = result; colaxis values = (-6 to 105 by 7);

 6. Two Plots Overlaid in a Single Graph - useful to display two lab trends on the same plot per patient.

proc sort data = labdata (keep = subjid labtest visit result); by visit; where subjid = "1001" and labtest in ("Creatinine" "Platelet"); run;

proc transpose data = labdata out = lab4plot; by visit; var result; id labtest; run;
title "Subject 1001";

proc sgplot data = lab4plot; series x = visit y = creatinine;
series x = visit y = platelet / y2axis; run;

 7. Group Mean Over - useful to display group mean with range for all patients.

proc sgplot data = data4plot;
band x = visit lower = yerrorlower upper = yerrorupper / legendlabel = "+/- SEM" name = "band";
series x = visit y = mean / legendlabel = "Mean" name = "series"; keylegend "series" "band" / location = inside position = bottomleft; by labtest; xaxis values = (-6 to 105 by 7); run;

 8. Box Plots - useful for box plots for each lab test.

The BOXPLOT Procedure book

proc sgplot data = labdata;
 by labtest; vbox result / category = visit; run; 

 9. Scatter Plots - useful to identify trends by plotting baseline values and snapshot followup date values and plotting a line.

proc sgscatter data = lab4plot;
plot creatinine43*creatinine1 platelet43*platelet1 red_blood_cells43*red_blood_cells1 white_blood_cells43*white_blood_cells1/reg; run;  

Traditional Graph 

ODS Statistical Graphics 
Graphs are saved in SAS® Graphics Catalog Graphs are saved in standard image format such as PNG and JPEG

Graphs are viewed in the Graph window Graphs are viewed in the standard viewers such as web browser for HTML output

Can use GOPTIONS statement to control appearance of graphs

 GOPTIONS statement has no effect

 File Type SAS Code/Tip See SAS Paper






 PDF  options orientation=landscape;
goptions reset=all
device=pdfc /*NOTICE my choice for the PDF destination*/
ftext="Swissb" ;

 CGM  * Requires Microsoft word plug-in to insert CGM files in word files;




HREF for vertivcal reference lines            |

VREF for horizontal reference lines   ________

UCLA SAS Examples  Proc GPlot Course Notes


SG Beginner Paper Graphing Made Easy with SG Procedures, Susan Slaughter, Lora Delwiche

SAS/Graph Beginner Paper Want Quick Results? An Introduction to SAS/GRAPH® Software, Art Carpenter, SAS/GRAPH® Elements You Should Know – Even If You Don’t Use SAS/GRAPH, Art Carpenter

HOW Paper Using the 9.2 Statistical Graphic Procedures, Chuck Kincaid

SAS Reference ODS, ODS Statistical Graphs, PROC GCHART Manual, Overlay, PROC SGPLOT

SAS Graph to MS Office Technical Reference

Great Graphics Using Proc Sgplot, Proc Sgscatter, and ODS Graphics for SAS®/Stat Procedures [Course Notes]

Introduction to Graphics Using SAS/GRAPH Software, Mike Kalt [Course Notes]


SAS/GRAPH Dashboard Examples

SAS Papers by Sanjay Matange

 Patient Profile Graphs Using SAS, Sanjay Matange [SAS 9.3 examples] [Presentation] 

 Make a Good Graph, Sanjay Matange

 Adverse Event Timeliine using SAS 9.2, Sanjay Matange [Macro]

 Create Comprehensive Patient Profiles with SAS, Daniel O’Connor and Sanjay Matange [SAS 9.2]

 Tips and Tricks for Clinical Graphs using ODS Graphics, Sanjay Matange

 Up Your Game with Graph Template Language Layouts, Sanjay Matange

Clinical Graphs Using SAS, Sanjay Matange [9.4]

Graph A Million with the SGPLOT Procedure, Prashant Hebbar and Sanjay Matange

 SAS® Statistical Graphics Procedures, Sanjay Matange, Dan Heath

 Now You Can Annotate Your Statistical Graphics Procedure Graphs, Dan Heath

Graphs are Easy with SAS® 9.4, Sanjay Matange

 ODS Statistical Graphics Course notes, SAS Institute

1. Customizing ODS Statistical Graphs, Cynthia Zender, Catherine Truxillo

2. ODS Statistical Graphics for Clinical Research, Wei Cheng

3. Creating Statistical Graphics in SAS 9.2: What Every Statistical User Should Know,
Robert Rodriguez, Tonya Balan

4. SG Techniques: Telling the Story Even Better, Chuck Kincaid

5. Using SAS GTL to Visualize Your Data When There is Too Much of it to Visualize, Perry Watts, Nate Derby

6. Non-ODS Graph Easy, Elegant, and Effective SAS® Graphs: Inform and Influence with Your Data, LeRoy Bessler

7. Picturing Statistics, Diana Suhr

8. Web Communication Effectiveness: Design and Methods to Get the Best Out of ODS, SAS®, and SAS/GRAPH®, LeRoy Bessler

9. Fonts and Special Characters in SAS – It’s All Greek to Me, Doug Lassman

10. Embedded Special Characters, Kiran Karidi, Mahipal Vanam, and Sridhar Dodlapati

11. Get the Best Out Of SAS® ODS Graphics and the SG (Statistical Graphics) Procedures: Communication-Effective Charts, Things That SAS/GRAPH® Cannot Do As Well,
and Macro Tools To Save Time and Avoid Errors, LeRoy Bessler

12. An Introduction to ODS for Statistical Graphics in SAS 9.1, Robert N. Rodriguez

13. Building a Better Bar Chart with SAS® Graph Template Language, Perry Watts

14. Clinical Trial Reporting Using SAS/GRAPH® SG Procedures, Susan Schwartz [Dose Response Plot, Cancer Mortality Plot, Mean Percent Change from Baseline]

15. Multiple Graphs on One page, the easy way (PDF) and the hard way (RTF), Kevin P. Delaney

16. Exporting SAS/GRAPH® Output for Inclusion in Web Pages and Other
Software Applications, Warren Repole

17. A Graphical Approach to Advise an Appropriate Statistical Analysis Bret  Moulton, Robin Jeffries

18. Multiple Graphs on One Page Using GREPLAY with “100%-Templates”, Dirk Spruck

19. The Rest of the Way There… Creating Multiple Graphs on a Single Page, Mary Buckwalter, Terek Peterson

20. Multiple Graphs on One Page Using SAS/GRAPH® V9, Hany Aboutaleb

21. Controlling Graph Size: Building Thumbnails and GIF Files Using SAS/GRAPH®, Arthur Carpenter, Richard Smith

22. Creating Statistical Graphics in SAS 9.2: What Every Statistical User Should Know,
Robert Rodriguez and Tonya Balan

23. Exporting SAS/GRAPH® Output: Concepts and Ideas, Dawn Schrader

24. SAS to PDF and JPEG (or viewing outputs in Windows Explorer), Xavier Passera

25. How to Customize Axes in PROC GPLOT, Iza Peszek

26. Generate a Customized Axis Scale with Uneven Intervals in SAS® Automatically, Perry Watts

27. Is the Legend in your SAS/GRAPH® Output Telling the Right Story?, Justina Flavin and Arthur Carpenter

28. A Legend is Not Just a Legend, Wendi Wright

29. Graphing in SAS Software, Destiny

30. Tips and Tricks in Creating Graphs Using PROC GPLOT, Qin Lin

31. Graphing Them Together: Overlaying Plots with Macros and SAS/GRAPH®, Lawrence Altmayer

32. An Introduction to PROC GREPLAY,Marc Jacobs


34. A Juxtaposition of Tables and Graphs Using SAS® /GRAPH Procedures, Suhas Sanjee, and Sheng Zhang

35. Presentation Quality Graphs With SAS/GRAPH, Michael Eberhart [HOW, Proc GREPLAY, DEVICE=PNG]

36. Using SAS®9 ODS Features to Present Table and Graph Data in an Adobe PDF File, Lori Parsons [Layout]

37. ODS LAYOUT is Like an Onion, Rich Mays

38. Optimizing SAS® Version 8 in a Windows Environment – from the User Interface to Automated Document Production, Roger Muller [EMF]

39. Using SAS® GTL with 9.3 Updates to Visualize Data When there is Too Much of It to Visualize

40. Getting Your Hands on Reproducible Graphs, Rebecca Ottesen and Leanne Goldstein [Overview of all plots, Data Science]

41. One at a Time; Producing Patient Profiles and Narratives, J. Hantsch, Janet Stuelpner

42. Creating Graphical Patient Profiles Using SAS, William Garner [SAS 9.2 Macro]

43. Intermediate SAS® ODS Graphics, Chuck Kincaid

44. A Graphical Approach to Examine the Completeness of Epidemiological Data: Patient Profile Plots (PPPs) and Centre Profile Plots (CPPs), Methodios Typou, Joseph Kim [Poster]

45. Graphical Representation of Patient Profile for Efficacy Analyses in Oncology, William Wu, Xiaoxian Dai, Linda Gau

46. Patient Profile, a Simple Approach, Sandy Chang

47. Using PROC SGPLOT for Quick High Quality Graphs, Lora Delwiche, Susan Slaughter

48. The Power to Plot: Three Ways to Enhance SG Graphical Outputs, Xiangxiang Meng

49. Scatter Plots Using PROC SGPLOT for that Thursday Presentation, Sharon Hirabayashi

50. Scatterplots: Basics, enhancements, problems and solutions, Peter Flom

51. Creating High-Quality Scatter Plots: An Old Story Told by the New SGSCATTER PROCEDURE, Xiangxiang Meng

52. When Simpler is Better – Visualizing Laboratory Data Using “SG Procedures”, Wei Cheng

53. A Picture is Worth a Thousand Words: Integrated Visualization of Clinical Data, Vikash Jain

54. Labelling without the Hassle: How to Produce Labeled Stacked Bar Charts Using SGPLOT and GTL Without Annotate, Joe Matise

55. Creating Graph Collections with Consistent Colors using ODS Graphics?, Philip Holland [Presentation]

56. Graphical Representation of Mean Measurement over Time, Wei Cheng

57. Why Should You Be Using the New SG (Statistical Graphics) Procedures in SAS® 9.2?, Philip Holland

58. Something for Nothing! Converting Plots from SAS/GRAPH® to ODS Graphics, Philip Holland

59. Using the ODS Graphics Designer to Create Your Own Templates, Philip Holland

60. Key Features in ODS Graphics for Efficient Clinical Graphing, Yuxin (Ellen) Jiang

61. The Power of Pictures: Using Image Files with ODS, SAS®, and SAS/GRAPH, LeRoy Bessler

62. Creating Customized Patient Profiles using SAS ODS RTF and PROC TEMPLATE, Andrea Ritter [Patient Narratives, Macro]

63. Highly Customized Graphs Using ODS Graphics, Warren Kuhfeld

64. Get a Quick Start with SAS ODS Graphics By Teaching Yourself, Roger D. Muller

65. Graphical Results in Clinical Oncology Studies, Nora Ruel, Paul Frankel [Survival, Time Plot of Response/Retreatment, Waterfall]

66. Introduction to ODS Graphics, Chuck Kincaid

67. Key Features in ODS Graphics for Efficient Clinical Graphing, Yuxin Jiang

68. Visualizing Laboratory Data Using SAS SG Procedures, Wei Cheng [Presentation]


70. SGPANEL: Telling the Story Better, Chuck Kincaid [LOGBASE, LOGTYPE]

71. A Different Point of View with ODS PDF in SAS 9.3, Scott Huntley and Woody Middleton [NOGTITLE]

72. An Insider’s Guide to ODS LAYOUT Using SAS 9.4, Scott Huntley [NOGTITLE]

73. Enhancements to Basic Patient Profiles, Scott Burroughs [QC]

74. Creating a Patient Profile using CDISC SDTM, Marc Desgrousilliers, Romain Miralles

75. Data review: To see or not to see …, Estelle Tiemtore, Damian Green

76. Using PROC SGPLOT to Produce Box Plots with Contrasting Colours in SAS

77. Box-and-Whisker Plots with The SAS System, David Shannon

78. Exposure-Response Plots Using SAS, Janette Garner

79. Converting Annotate to ODS Graphics. Is It Possible?, Philip R Holland

80. Labelling without the Hassle: How to Produce Labeled Stacked Bar Charts Using SGPLOT and GTL Without Annotate Joe Matise

81. Plotting Against Cancer: Creating Oncology Plots Using SAS, Debpriya Sarkar

82. Graphical Results in Clinical Oncology Studies, Nora Ruel, Paul Frankel

83. Great Time to Learn GTL, Kriss Harris, Richann Watson

84. A Graphical Approach to Examine the Completeness of Epidemiological Data: Patient Profile Plots (PPPs) and Centre Profile Plots (CPPs) Methodios Typou, Independent Consultant, London, UK Joseph Kim

85. Presentation Quality Forecast Visualization with SAS/GRAPH, Samuel Croker

86. Techniques of Preparing Datasets for Visualizing Clinical Laboratory Data, Amos Shu, Victor Sun

87. Unleashing Potential of Graphs for Oncology Trials, Manoj Pandey [Presentation, Data Science]

88. Data Visualization for Data Monitoring Committees for Clinical Trials, Adam Hamm

89. Graphical and Analytical Tools for the Analysis of Two-Period Crossover Clinical Trials, Jeff Sloan, Paul Novotny, Charles Loprinzi, Suresh Nair

90. Data Visualization of Phase 1 Clinical Studies—“Big Al’s World” or Using SAS Version 8 to Acquire Quality Ice Cream, Richard Synowiec

91. Getting Started with the SGPLOT Procedure, Joshua Horstman

92. Graph Display of Patient Profile Using SAS, Yanwei Han, Hongyu Liu

93. A Simple Method to Generate Patient Profiles, Suwen Li, Daniel Li [Macros]

94. Operational Uses of Patient Profiles … Even in an eCTD and SDTM World, Terek Peterson, Sanjiv Ramalingam [Macro]

95. Programmed Assisted Patient Narratives (PANs) with New SAS® ODS and Graphical Approaches, Faye Yeh [Text, Graphs, Macros]

96. The New STREAM Procedure as a Virtual Medical Writer, Joseph Hinson [Patient Narriatives]

97. Creating Presentation-Quality ODS Graphics Output, Dan Heath

98. Presentation Quality Graphs With SAS/GRAPH, Michael Eberhart

99. Fine-tuning your swimmer plot: another example from oncology, Steve Almond

100. Get in your lane! Building swimmer plots using SAS® 9.4, Sri Talluri, Kristi Garner

Annotate Examples  SAS Annotate Dictionary Macros

Text Appearance Variables


1. Data Driven Annotations: An Introduction to SAS/GRAPH’s® Annotate Facility, Art Carpenter

2. SAS/Graph® Annotate Coordinate Systems by Example, Max Cherny

3. Appending Many Individual Graphs Into One PDF File, With Custom Bookmarks, Scott

4. Using ANNOTATE MACROS as Shortcuts, Arthur Carpenter

5. SAS/Graph Annotate Macro Tutorial, Kathy Shelley

6. A Handy use of the %LINE Annotate Macro, Deena Rorie, Lynette Duncan

7. Creating Customized Spaghetti Plots, Sanjiv Ramalingam

Annotate: Simply the Basics Examples    PROC GREPLAY


Graphics Template Language (GTL)


SAS Getting Started with GTL Webinar

SAS Example of overlaying two graphs

SAS Example of two nested graphs SAS Example of side-by-side graphs


1. A Programmer’s Introduction to the Graphics Template Language, Jeff Cartier

2. The Graph Template Language and the Statistical Graphics Procedures: An Example-Driven Introduction, Warren F. Kuhfeld

3. Innovative uses of ODS and GTL, Qinghua (Kathy) Chen

4. GTL to the Rescue!, Lelia McConnell

5. Make It Possible: Create Customized Graphs with GTL Wen Song, Ge Wu

6. SAS Can Automatically Provide GTL Templates for Graphics in Three
Ways, David Shen, Li Zhang, Ben Adeyi, Dapeng Zhang

7. GTL (Graphics Template Language) in SAS 9.2, Philip Holland

8. Using SAS® GTL with 9.3 Updates to Visualize Data When there is Too Much of It to Visualize, Perry Watts

9. An efficient way to create graphs in SAS 9.2: Utilizing SG procedures and GTL, Yunzhi Ling

10. Hands-on GTL, Kriss Harris

11. The Graph Template Language: Beyond the SAS/GRAPH® Procedures, Jesse Pratt [XAXISOPTS]

12. Using Axes Options to Stretch the Limits of SAS® Graph Template Language, Perry Watts [XAXISOPTS]

13. Developing ODS Templates for Nonstandard Graphs in SAS 9.2, Philip Holland

Forest Plots

Three methods to create forest plots: 1) Direct from Proc LOGISTIC, Proc SGPLOT, 2) Calling %forestmacro, 3) Custom plot with annotated dataset

Forest Plot with Subgroups Blog

1. A Modular Approach of Reporting Meta Analysis Statistics Using Forest Plots,
Vikash Jain

2. Creating Forest Plots from Pre-computed Data using PROC SGPLOT and Graph
Template Language, Zoran Bursac

3. Creating Forest Plots Using SAS/GRAPH and the Annotate Facility, Amanda Tweed

4. Multiple Forest Plots and the SAS® System, Anne Barfield

5. Using SAS® Procedures FREQ, GENMOD, LOGISTIC, and PHREG to Estimate
Adjusted Relative Risks – A Case Study, Jiming Fang

6. Lost in the Forest Plot? Follow the GTL AXISTABLE Road!, Prashant Hebbar


Quick Results with SAS/Graph Examples

Producing High-Quality Figures Using SAS/GRAPH® and ODS Graphics Procedures by Charlie Liu

Powered by Wild Apricot Membership Software