Presentation Title Name Second Line

Download Report

Transcript Presentation Title Name Second Line

SAS Graphics on ODS v9.2
Performance Enhancing Steroids
Daniel O’Connor
Systems Developer, SAS Institute Inc.
Copyright © 2008, SAS Institute Inc. All rights reserved.
Professional Athletes Accused of Abuse
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Styles
 Colors
 Fonts
 Overall appearance
 Theme
 Symbols
 Line Patterns
Copyright © 2008, SAS Institute Inc. All rights reserved.
SAS 9.2 Graphs honor Styles
SAS 9.1
Copyright © 2008, SAS Institute Inc. All rights reserved.
SAS 9.2
SAS 9.2 Graphs honor Styles
title "Perceived Harmfulness of Steroids";
footnote "Source: 2005 Monitoring the Future Survey.";
goptions device=png hsize=3in vsize=3in border;
proc gchart;
axis1 label=none;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;
;run;quit;
Copyright © 2008, SAS Institute Inc. All rights reserved.
GSTYLE Option
Options <GSTYLE | NOGSTYLE>
<GSTYLE = < ON | OFF>>;
Default: GSTYLE
Graphs will automatically honor the
active ODS Style for each output
destination.
Copyright © 2008, SAS Institute Inc. All rights reserved.
Default Styles
Output Destination
Listing
HTML
RTF
Measured RTF
PDF
Postscript
PCL
Printer
Copyright © 2008, SAS Institute Inc. All rights reserved.
Default Style
Listing (Graphics ONLY)
Default
RTf
RTF
Printer
Printer
MonochromePrinter
Printer
Changing the Default Styles
Copyright © 2008, SAS Institute Inc. All rights reserved.
How do ODS Styles effect my output?
Copyright © 2008, SAS Institute Inc. All rights reserved.
Overriding the Default Style
title "Perceived Harmfulness of Steroids";
footnote "Source: 2005 Monitoring the Future Survey.";
goptions device=png hsize=3in vsize=3in border;
ods listing style=< MonochromePrinter or Default > ;
proc gchart;
axis1 label=none;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;
;run;quit;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Creating your own style
Copyright © 2008, SAS Institute Inc. All rights reserved.
Creating your own style
proc template;
define style Styles.SGFImage;
parent=Styles.science;
style GraphBackground
"Graph background attributes" /
backgroundimage = "pillsLighten4.jpg";
end;
run;
ods listing style=SGFImage;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Customizing your own style
Copyright © 2008, SAS Institute Inc. All rights reserved.
Gradient Colors
style GraphBackground "Graph background
attributes" /
startcolor = cx4a495a endcolor = cx000000
gradient_direction = "YAxis";
style GraphData1 “Graph Data attributes” /
startcolor=GraphColors("gcdata1")
endcolor=cxd6deef gradient_direction="yaxis";
[ snip….]
style GraphData8 “Graph Data attributes” /
startcolor=GraphColors("gcdata8")
endcolor=cxf7dee7 gradient_direction="yaxis";
Copyright © 2008, SAS Institute Inc. All rights reserved.
Free Type Font Engine
SAS TrueType Font
Albany AMT
Thorndale AMT
Cumberland AMT
Symbol MT
Monotype Sorts
Copyright © 2008, SAS Institute Inc. All rights reserved.
Type Face
sans-serif
serif
fixed serif
Symbol
Symbol
Metric Compatibility
Arial
Times New Roman
Courier New
Symbol
Wingding
Graphic Devices
 DPI
 Default Sizes
 Orientation
 Catalog Grseg
 Image Type
Copyright © 2008, SAS Institute Inc. All rights reserved.
Default Graphic Devices
Output Destination
Listing
Default Device
Host Specific Display Device (
PC - WIN; UNIX - XCOLOR;
MVS - Display Device)
HTML
RTF
Measured RTF
PNG
SASEMF
PNG
SASPRTC (Color Output) *
PDF
Postscript
PCL
Printer
SASPRTC (Color Output) *
SASPRTM (Monochrome
Host Specific Default Printer *
* Does not support changing the Default Device in the SAS Registry.
Copyright © 2008, SAS Institute Inc. All rights reserved.
Changing Graphic Devices
 Options device=png
 Goption device=png
 Ods <destination> device=png
Copyright © 2008, SAS Institute Inc. All rights reserved.
Valid Image Formats
Output Destination
Default Device
Listing
PNG, GIF, BMP, JPEG, PBM, PS, PDF, TIFF, EMF, EPS,
DIB, PCL, PICT, WMF, XBM, XPM, SVG
HTML
PNG, GIF, JPEG, SVG
RTF
PNG, EMF, JPEG
Measured RTF
PNG, EMF, JPEG
PDF
PNG, PS, PDF, PCL, JPEG, GIF
Postscript
PNG, PS, PDF, PCL, JPEG, GIF
PCL
PNG, PS, PDF, PCL, JPEG, GIF
Printer
PNG, PS, PDF, PCL, JPEG, GIF
Copyright © 2008, SAS Institute Inc. All rights reserved.
Scalable Vector Graphics Device Driver
Copyright © 2008, SAS Institute Inc. All rights reserved.
Scalable Vector Graphics Device Driver
goptions device=svg;
title "Perceived Harmfulness of Steroids";
footnote "Source: 2005 Monitoring the Future Survey.";
ods html file=“Slide20.html";
proc gchart;
axis1 label=none;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;
run;quit;
ods html close;
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Destination Interactions
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Destination Interactions
ods html file=”Slide22Sketch.html” style=Sketch;
ods pdf ” file=”Slide22Banker.pdf” style=Banker;
goptions hsize=3.25in vsize=3in border;
proc gchart data=sashelp.class;
vbar age;
run; quit;
ods pdf close;
ods html close;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Graphic Catalog Entries
Copyright © 2008, SAS Institute Inc. All rights reserved.
Altering the position and size of the graph
 Hsize
 Vsize
 Horigin
 Vorigin
Copyright © 2008, SAS Institute Inc. All rights reserved.
Multiple Columns
RTF and PDF only
columns = <n>
Example:
Ods pdf file=“slide19.pdf”
columns = 3;
…
Start New Page
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output with Multiple Columns
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output with Multiple Columns
ods pdf file=“Slide26.pdf" columns=2;
title "Perceived Harmfulness of Steroids";
footnote "Source: 2005 Monitoring the Future Survey.";
axis1 label=none;
proc gchart;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
proc gchart;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
ods pdf close;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output with Multiple Rows
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output with Startpage
STARTPAGE = < NEVER | NO | YES | NOW >
NEVER
do not insert any page breaks
NO
new page will only begin when the
page is full
YES
Insert new pages on PROC
boundaries, and when PROC
specifically requests one
NOW
Immediately start a new page
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output with Multiple Rows
ods pdf file=“Slide28.pdf" Startpage=no;
goptions vsize=5in;
title "Perceived Harmfulness of Steroids";
footnote "Source: 2005 Monitoring the Future Survey.";
axis1 label=none;
proc gchart;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
proc gchart;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
ods pdf close;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output with Multiple Rows & Columns
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output on a page
ods pdf file=“Slide30.pdf" startpage=no columns=2;
goptions vsize=5in border;
axis1 label=none;
proc gchart;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
proc gchart;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
proc gchart;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
proc gchart;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
ods pdf close;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output with Multiple Columns
Copyright © 2008, SAS Institute Inc. All rights reserved.
Multiple Columns
Copyright © 2008, SAS Institute Inc. All rights reserved.
Multiple Columns
Copyright © 2008, SAS Institute Inc. All rights reserved.
Customizing Date/Timestamp and Page Number
Copyright © 2008, SAS Institute Inc. All rights reserved.
Customizing Date/Timestamp and Page Number
proc template;
define style Styles.Pageno;
parent=Styles.Printer;
class BodyDate /
vjust=Bottom just=Right;
class Pageno /
vjust=Bottom just=Center;
end; run;
ods pdf file=“Slide32.pdf" startpage=no style=Pageno;
[ same as previous graph code]
ods pdf close;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing your Output Width ODS LAYOUT
 Absolute
 Gridded
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing your Output Width ODS Layout
Ods layout start <options> ;
Ods region < options > ;
Ods layout end ;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Reasons why you would use Absolute Layout
 Cover Page
 Static Data
 Pre-printed Form
 Single Page Only
Copyright © 2008, SAS Institute Inc. All rights reserved.
Absolute Layout
Ods layout start width=7in
height=10in;
Ods region x=2.5in
y=3.5in
width=3in
height=2in;
< sas code>
Ods region x=4in
y=5.5in
width=3in
height=2in;
< sas code>
Ods layout end;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Title
Region
Layout
Region
Footnote
ODS Absolute Layout
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Absolute Layout
ods layout start width=7in height=10in;
ods region height=3in width=3in x=0in y=.5in;
proc print data=sashelp.class(obs=5);run;
ods region height=3in width=3in x=5in y=.5in;
ods pdf text='~{style [font_size=28pt]To the left is a PROC …}';
ods region height=3in width=3in x=0in y=3.5in;
ods pdf text='~{style [font_size=28pt]To the right is a PROC …}';
ods region height=3in width=3in x=5in y=3.5in;
proc sgplot data=sashelp.class; scatter x=height y=weight /group=age;run;
ods region height=3in width=3in x=0in y=8in;
proc gchart data=sashelp.class; vbar age; run;quit;
ods region height=3in width=3in x=5in y=8in;
ods pdf text='~{style [font_size=28pt]To the left is a PROC ...}';
ods layout end;
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Absolute Layout
Syntax:
ODS LAYOUT START
< X = < dimension>
Y = < dimension>
Width = < dimension >
Height = < dimension > > ;
ODS REGION
< X = < dimension>
Y = < dimension>
Width = < dimension >
Height = < dimension > > ;
ODS LAYOUT END;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Reasons why you would use Gridded Layout
 Regions can be dynamically sized
 Accommodate dynamic data
 Ease of use (less syntax)
 Alignment
 Can span more than 1 page
Copyright © 2008, SAS Institute Inc. All rights reserved.
Gridded Layout
Ods layout start columns =2;
Ods region;
< sas code>
Ods region;
< sas code>
Tile
Region
Region
Region
Region
Region
Ods region;
< sas code>
Ods region;
< sas code>
Ods region column_span=2;
< sas code>
Ods layout end;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Footnote
Start New Page
Gridded Layout
Start New Page
Tile
Region 1
Tile
Region 2
Footnote
Copyright © 2008, SAS Institute Inc. All rights reserved.
Region 1
Region 2
Footnote
Managing Output with ODS Gridded Layout
Copyright © 2008, SAS Institute Inc. All rights reserved.
Managing Output with ODS Gridded Layout
ods layout start columns=2;
ods region width=4in;
proc gchart;
axis1 label=none;
vbar year / width=12 outside=sum sumvar=response
discrete maxis=axis1 raxis=axis1;run;quit;
ods region;
proc print;run;
ods layout end;
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Gridded Layout
Syntax:
ODS LAYOUT START
< Width = < dimension >
Height = < dimension >
Rows = < n >
Row_heights = <dimension>
Row_gutter = <dimension>
Columns = < n >
Column_widths = <dimension>
Column_gutter = <dimension>
>;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Gridded Layout
3in
Tile
4in
Region
Region
Region
Region
COLUMN_GUTTER
COLUMN_WIDTHS
2in
Region
ROW_GUTTER
ROW_HEIGHT
Footnote
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Gridded Layout
Syntax:
ODS REGION
< Width = < dimension >
Height = < dimension >
Row_span = < n >
Row = <n>
Column_span = < n >
Column = <n>
>;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Copyright © 2008, SAS Institute Inc. All rights reserved.
Copyright © 2008, SAS Institute Inc. All rights reserved.
Copyright © 2008, SAS Institute Inc. All rights reserved.
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
 Invoices
 Form letters
 Report is not rectangular in nature
 Report is very data centric
 Requires special conditional logic
 Need to compute & display special
summarization information
 Need to add narrative information inside a table
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
data game;
input HomeRank HomeTeam $4-15 HomeNickname $17-25 Homeone Hometwo Homeot
VisitorRank VisitorTeam $38-49 VisitorNickname $52-60 Visitorone Visitortwo Visitorot Final;
cards;
7 TEXAS
LONGHORNS 30 44 0 24 KANSAS STATE WILDCATS 30 35 0 4
;run;
proc format;
value game_status
1 = "1st“
2 = "HALF“
3 = "2nd“
4 = "FINAL";run;
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
1
2
data _null_;
set game;
Dcl odsout obj();
obj.table_start(columns: 6 );
Copyright © 2008, SAS Institute Inc. All rights reserved.
3
4
5
6
ODS Report Writing Interface
1
2
3
4
5
6
obj.row_start();
obj.format_cell ( data: "Fred Bramlage Coliseum, Manhattan, KS",
overrides: "font_size=10pt backgroundcolor=dark gray color=light gray",
column_span: 6 );
obj.row_end();
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
1
2
3
4
5
6
obj.format_cell(data: HomeRank, overrides: "backgroundcolor=dark gray color=light gray");
obj.format_cell(data: HomeTeam, overrides: "backgroundcolor=dark gray color=white");
obj.format_cell(data: Homeone+Hometwo+Homeot, column_span: 2);
obj.format_cell(data: Final, format: "game_status", row_span: 2, column_span: 2 );
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
1
2
3
4
obj.format_cell(data: VisitorRank);
obj.format_cell(data: VisitorTeam );
obj.format_cell(data: Visitorone+Visitortwo+Visitort,
overrides: “borderleftcolor = light gray bordertopcolor= light gray
borderbottomcolor= light gray “);
Copyright © 2008, SAS Institute Inc. All rights reserved.
5
6
ODS Report Writing Interface
1
2
3
4
5
6
obj.format_cell( data: " ", column_span: 2, overrides: "backgroundcolor=light gray");
obj.format_cell( data: “1” );
obj.format_cell( data: "2” );
obj.format_cell( data: "OT“ );
obj.format_cell( data: "T“ );
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
1
2
3
obj.format_cell(data: HomeNickname, column_span:2 );
obj.format_cell(data: Homeone );
obj.format_cell(data: Hometwo );
obj.format_cell(data: Homeot );
obj.format_cell(data: Homeone+Hometwo+Homeot );
Copyright © 2008, SAS Institute Inc. All rights reserved.
4
5
6
ODS Report Writing Interface
1
2
3
obj.format_cell(data: VisitorNickname, column_span:2 );
obj.format_cell(data: Visitorone );
obj.format_cell(data: Visitortwo );
obj.format_cell(data: Visitorot );
obj.format_cell(data: Visitorone+Visitortwo+Visitorot );
Copyright © 2008, SAS Institute Inc. All rights reserved.
4
5
6
ODS Report Writing Interface
1
2
3
4
5
6
obj.row_start();
obj.format_cell(data: "Attendance: N/A", column_span: 6,
overrides: "vjust=bottom backgroundcolor=light gray");
obj.row_end();
obj.table_end();
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Report Writing Interface
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Graphics Architecture
 Automatic Graphic Creation
 Graph Template Language
 New SAS/GRAPH Procedures
 ODS Graphics Editor
Copyright © 2008, SAS Institute Inc. All rights reserved.
Automatic Graphic Creation
ods graphics on;
/* bread and butter timeseries analysis graphics; */
proc timeseries data=sashelp.workers out=_NULL_
plot = all
print=all;
id date interval=month;
var electric masonry;
run;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Automatic Graphic Creation
Copyright © 2008, SAS Institute Inc. All rights reserved.
Automatic Graphic Creation
Copyright © 2008, SAS Institute Inc. All rights reserved.
Graph Template Language (GTL)
 Proc Template
 Sophisticated Analytical Graphs
Copyright © 2008, SAS Institute Inc. All rights reserved.
Automatic Graphic Creation
ods graphics on;
ods trace on;
/* bread and butter timeseries analysis graphics; */
proc timeseries data=sashelp.workers out=_NULL_
plot = histogram
print=all;
id date interval=month;
var electric masonry;
run;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Automatic Graphic Creation
Copyright © 2008, SAS Institute Inc. All rights reserved.
Automatic Graphic Creation
BeginGraph;
EntryTitle TITLE;
Layout Overlay / XAxisOpts=(label="Series" linearopts=(
tickvalueformat=BEST12.)) yaxisopts=(label="Percent");
Histogram SERIES;
DensityPlot SERIES /
LegendLabel="Normal" name="Normal";
DensityPlot SERIES / Kernel ()
LegendLabel="Kernel" name="Kernel“
lineattrs=GRAPHFIT2;
DiscreteLegend "Normal" "Kernel" / across=1
location=inside autoalign=(topright topleft top);
EndLayout;
EndGraph;
Copyright © 2008, SAS Institute Inc. All rights reserved.
SAS/GRAPH Procedures
 SGPLOT
 SGSCATTER
 SGPANEL
 SGRENDER
Copyright © 2008, SAS Institute Inc. All rights reserved.
Heat Map (SGPLOT)
Copyright © 2008, SAS Institute Inc. All rights reserved.
Heat Map
proc sgplot data=heatmap;
scatter x=make y=type /
group=group
markerattrs=(size=.28in symbol=squarefilled);
run;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Paneled Plots (SGPanel)
Copyright © 2008, SAS Institute Inc. All rights reserved.
Paneled Plots (SGPanel)
proc sgpanel data=cancer;
panelby race sex /
columns=5
layout=lattice
novarname
uniscale=column;
hbar cause / response=incidence;
colaxis grid label='Incidence per 100,000 People';
rowaxis grid label=' ';
run;
Copyright © 2008, SAS Institute Inc. All rights reserved.
Stacked Band Plots (SGPLOT)
Copyright © 2008, SAS Institute Inc. All rights reserved.
Butterfly Plots (SGPLOT)
Copyright © 2008, SAS Institute Inc. All rights reserved.
Paneled Butterfly Plots (SGPANEL)
Copyright © 2008, SAS Institute Inc. All rights reserved.
More Paneled Plots
Copyright © 2008, SAS Institute Inc. All rights reserved.
ODS Statistical Graphics Editor
Copyright © 2008, SAS Institute Inc. All rights reserved.
Contact Information
Dan O’Connor
[email protected]
ODS Development Team
[email protected]
Copyright © 2008, SAS Institute Inc. All rights reserved.