| Return to SAS 9
|
ODS statistical graphics was experimental in SAS 9.1 and is production in SAS 9.2, having been totally reworked and expanded. These graphics result from years of cooperative labor involving ODS, SAS/GRAPH, and Analytical Solutions R&D.
The underlying premise is that a statistical procedure can generate graphical displays for analyses by default or with minimal optional syntax. A procedure generates graphs that are appropriate for its analysis. You don't need to know the rich template language that governs the layout and structure of a graph, unless you want to customize it. The graphics are rendered to every active ODS destination. Scores of procedures support ODS graphics in 9.2. A SAS/GRAPH license is required.
This new feature is so broad that it's impossible to cover in this topic, but here are a few examples.
In this example, PROC ARIMA automatically generates ACF plots because ODS graphics is enabled. View output.
ods graphics on / imagename='darim10' test;
ods pdf file="arima.pdf" notoc style=statistical;
ods listing close;
options ps=MAX nodate;
title2 'International Airline Passengers';
title3 '(Box and Jenkins Series-G)';
data seriesg;
input x @@;
xlog = log( x );
date = intnx( 'month', '31dec1948'd, _n_ );
format date monyy.;
datalines;
112 118 132 129 121 135 148 148 136 119 104 118
115 126 141 135 125 149 170 170 158 133 114 140
145 150 178 163 172 178 199 199 184 162 146 166
171 180 193 181 183 218 230 242 209 191 172 194
196 196 236 235 229 243 264 272 237 211 180 201
204 188 235 227 234 264 302 293 259 229 203 229
242 233 267 269 270 315 364 347 312 274 237 278
284 277 317 313 318 374 413 405 355 306 271 306
315 301 356 348 355 422 465 467 404 347 305 336
340 318 362 348 363 435 491 505 404 359 310 337
360 342 406 396 420 472 548 559 463 407 362 405
417 391 419 461 472 535 622 606 508 461 390 432
;
run;
proc arima data=seriesg;
identify var=xlog(1,12) nlag=15; run;
estimate q=(1)(12) noconstant method=uls; run;
forecast out=b lead=24 id=date interval=month noprint; run;
quit;
ods graphics off;
ods pdf close;
ods listing;
Here is an example in which the user specifies the desired survival analysis plots with the PLOTS= option. View output.
ods listing close;
ods pdf file="lifetest.pdf" notoc style=analysis;
ods graphics on;
proc format;
value disease 1='Acute Lymphoblastic Leukemia'
2='Acute Myeloctic Leukemia I'
3='Acute Myeloctic Leukemia II';
run;
data bmt;
input group t1 t2 d1 d2 ta da tc dc tp dp z1-z10;
datalines;
1 2081 2081 0 0 0 67 1 121 1 13 1 26 33 1 0 1 1 98 0 1 0
1 1602 1602 0 0 0 1602 0 139 1 18 1 21 37 1 1 0 0 1720 0 1 0
1 1496 1496 0 0 0 1496 0 307 1 12 1 26 35 1 1 1 0 127 0 1 0
1 1462 1462 0 0 0 70 1 95 1 13 1 17 21 0 1 0 0 168 0 1 0
1 1433 1433 0 0 0 1433 0 236 1 12 1 32 36 1 1 1 1 93 0 1 0
1 1377 1377 0 0 0 1377 0 123 1 12 1 22 31 1 1 1 1 2187 0 1 0
1 1330 1330 0 0 0 1330 0 96 1 17 1 20 17 1 0 1 1 1006 0 1 0
1 996 996 0 0 0 72 1 121 1 12 1 22 24 1 0 0 0 1319 0 1 0
1 226 226 0 0 0 226 0 226 0 10 1 18 21 0 1 0 0 208 0 1 0
1 1199 1199 0 0 0 1199 0 91 1 29 1 24 40 1 1 0 1 174 0 3 1
1 1111 1111 0 0 0 1111 0 1111 0 22 1 19 28 1 1 0 1 236 0 3 1
1 530 530 0 0 0 38 1 84 1 34 1 17 28 1 1 0 0 151 0 3 1
1 1182 1182 0 0 0 1182 0 112 1 22 1 24 23 0 0 0 1 203 0 2 1
1 1167 1167 0 0 0 39 1 487 1 1167 0 27 22 0 1 1 1 191 0 2 1
1 418 418 1 0 1 418 0 220 1 21 1 18 14 1 1 0 0 110 0 1 0
1 417 383 1 1 1 417 0 417 0 16 1 15 20 1 1 0 0 824 0 1 0
1 276 276 1 0 1 276 0 81 1 21 1 18 5 0 0 0 0 146 0 1 0
1 156 104 1 1 1 28 1 156 0 20 1 20 33 1 1 0 1 85 0 1 0
1 781 609 1 1 1 781 0 781 0 26 1 27 27 1 0 1 1 187 0 1 0
1 172 172 1 0 1 22 1 172 0 37 1 40 37 0 0 0 1 129 0 1 0
1 487 487 1 0 1 487 0 76 1 22 1 22 20 1 1 0 0 128 0 1 0
1 716 662 1 1 1 716 0 716 0 17 1 28 32 1 1 0 0 84 0 1 0
1 194 194 1 0 1 194 0 94 1 25 1 26 32 0 1 0 0 329 0 1 0
1 371 230 1 1 1 371 0 184 1 9 1 39 31 0 1 0 1 147 0 1 0
1 526 526 1 0 1 526 0 121 1 11 1 15 20 1 1 0 0 943 0 1 0
1 122 122 1 0 1 88 1 122 0 13 1 20 26 1 0 0 1 2616 0 1 0
1 1279 129 1 1 1 1279 0 1279 0 22 1 17 20 0 0 0 0 937 0 3 1
1 110 74 1 1 1 110 0 110 0 49 1 28 25 1 0 1 0 303 0 3 1
1 243 122 1 1 1 243 0 243 0 23 1 37 38 0 1 1 1 170 0 3 1
1 86 86 1 0 1 86 0 86 0 86 0 17 26 1 0 1 0 239 0 3 1
1 466 466 1 0 1 466 0 119 1 100 1 15 18 1 1 0 0 508 0 3 1
1 262 192 1 1 1 10 1 84 1 59 1 29 32 1 1 1 0 74 0 3 1
1 162 109 1 1 1 162 0 162 0 40 1 36 43 1 1 1 0 393 0 2 1
1 262 55 1 1 1 262 0 262 0 24 1 23 16 0 1 1 1 331 0 2 1
1 1 1 1 0 1 1 0 1 0 1 0 42 48 1 1 0 0 196 0 2 1
1 107 107 1 0 1 107 0 107 0 107 0 30 19 1 1 1 1 178 0 2 1
1 269 110 1 1 1 269 0 120 1 27 1 29 20 0 1 1 1 361 0 2 1
1 350 332 1 0 1 350 0 350 0 33 1 22 20 1 0 0 0 834 0 2 1
2 2569 2569 0 0 0 2569 0 2569 0 21 1 19 13 1 1 1 0 270 1 1 0
2 2506 2506 0 0 0 2506 0 2506 0 17 1 31 34 1 1 0 0 60 0 1 0
2 2409 2409 0 0 0 2409 0 2409 0 16 1 35 31 1 1 1 1 120 0 1 0
2 2218 2218 0 0 0 2218 0 2218 0 11 1 16 16 1 1 1 0 60 1 1 0
2 1857 1857 0 0 0 1857 0 260 1 15 1 29 35 0 0 1 0 90 0 1 0
2 1829 1829 0 0 0 1829 0 1829 0 19 1 19 18 1 1 1 0 210 0 1 0
2 1562 1562 0 0 0 1562 0 1562 0 18 1 26 30 1 1 1 1 90 0 1 0
2 1470 1470 0 0 0 1470 0 180 1 14 1 27 34 1 1 0 1 240 0 1 0
2 1363 1363 0 0 0 1363 0 200 1 12 1 13 24 1 1 1 0 90 0 1 0
2 1030 1030 0 0 0 1030 0 210 1 14 1 25 29 0 0 0 0 210 0 1 0
2 860 860 0 0 0 860 0 860 0 15 1 25 31 0 1 0 1 180 0 1 0
2 1258 1258 0 0 0 1258 0 120 1 66 1 30 16 0 1 1 0 180 0 2 1
2 2246 2246 0 0 0 52 1 380 1 15 1 45 39 0 0 0 0 105 0 4 0
2 1870 1870 0 0 0 1870 0 230 1 16 1 33 30 0 0 1 1 225 0 4 0
2 1799 1799 0 0 0 1799 0 140 1 12 1 32 23 1 0 0 0 120 0 4 0
2 1709 1709 0 0 0 20 1 348 1 19 1 23 28 0 1 1 0 90 1 4 0
2 1674 1674 0 0 0 1674 0 1674 0 24 1 37 34 1 1 0 0 60 1 4 0
2 1568 1568 0 0 0 1568 0 1568 0 14 1 15 19 1 0 0 0 90 0 4 0
2 1527 1527 0 0 0 1527 0 1527 0 13 1 22 12 0 1 0 1 450 1 4 0
2 1324 1324 0 0 0 25 1 1324 0 15 1 46 31 1 1 1 1 75 0 4 0
2 957 957 0 0 0 957 0 957 0 69 1 18 17 1 1 0 0 90 0 4 0
2 932 932 0 0 0 29 1 932 0 7 1 27 30 0 0 0 0 60 1 4 0
2 847 847 0 0 0 847 0 847 0 16 1 28 29 1 1 0 0 75 0 4 0
2 848 848 0 0 0 848 0 155 1 16 1 23 26 1 1 0 0 180 0 4 0
2 1850 1850 0 0 0 1850 0 1850 0 9 1 37 36 0 0 0 1 180 0 3 1
2 1843 1843 0 0 0 1843 0 1843 0 19 1 34 32 0 0 1 1 270 0 3 1
2 1535 1535 0 0 0 1535 0 1535 0 21 1 35 32 0 1 0 0 180 1 3 1
2 1447 1447 0 0 0 1447 0 220 1 24 1 33 28 0 1 1 1 150 0 3 1
2 1384 1384 0 0 0 1384 0 200 1 19 1 21 18 0 0 0 0 120 0 3 1
2 414 414 1 0 1 414 0 414 0 27 1 21 15 1 1 0 1 120 1 1 0
2 2204 2204 1 0 1 2204 0 2204 0 12 1 25 19 0 0 0 1 60 0 1 0
2 1063 1063 1 0 1 1063 0 240 1 16 1 50 38 1 0 1 0 270 1 1 0
2 481 481 1 0 1 30 1 120 1 24 1 35 36 1 0 1 1 90 1 1 0
2 105 105 1 0 1 21 1 105 0 15 1 37 34 1 0 1 1 120 0 1 0
2 641 641 1 0 1 641 0 641 0 11 1 26 24 1 1 0 0 90 0 1 0
2 390 390 1 0 1 390 0 390 0 11 1 50 48 1 1 0 0 120 0 1 0
2 288 288 1 0 1 18 1 100 1 288 0 45 43 1 1 1 1 90 0 1 0
2 522 421 1 1 1 25 1 140 1 20 1 28 30 1 1 0 1 90 1 1 0
2 79 79 1 0 1 16 1 79 0 79 0 43 43 0 0 0 0 90 0 1 0
2 1156 748 1 1 1 1156 0 180 1 18 1 14 19 1 0 0 0 60 0 1 0
2 583 486 1 1 1 583 0 583 0 11 1 17 14 0 1 0 0 120 0 1 0
2 48 48 1 0 1 48 0 48 0 14 1 32 33 0 1 1 0 150 1 1 0
2 431 272 1 1 1 431 0 431 0 12 1 30 23 0 1 1 0 120 1 1 0
2 1074 1074 1 0 1 1074 0 120 1 19 1 30 32 1 1 1 0 150 1 1 0
2 393 381 1 1 1 393 0 100 1 16 1 33 28 0 0 0 0 120 1 1 0
2 10 10 1 0 1 10 0 10 0 10 0 34 54 1 0 1 1 240 0 2 1
2 53 53 1 0 1 53 0 53 0 53 0 33 41 0 1 1 1 180 0 2 1
2 80 80 1 0 1 10 1 80 0 80 0 30 35 0 0 0 1 150 0 2 1
2 35 35 1 0 1 35 0 35 0 35 0 23 25 0 1 1 1 150 0 2 1
2 1499 248 0 1 1 1499 0 1499 0 9 1 35 18 1 1 0 1 30 0 4 0
2 704 704 1 0 1 36 1 155 1 18 1 29 21 0 1 1 0 105 0 4 0
2 653 211 1 1 1 653 0 653 0 23 1 23 16 1 0 0 0 90 1 4 0
2 222 219 1 1 1 222 0 123 1 52 1 28 30 1 1 1 1 120 1 3 1
2 1356 606 0 1 1 1356 0 1356 0 14 1 33 22 1 1 1 0 210 1 3 1
3 2640 2640 0 0 0 2640 0 2640 0 22 1 18 23 1 1 0 0 750 0 1 0
3 2430 2430 0 0 0 2430 0 2430 0 14 1 29 26 1 1 0 1 24 0 1 0
3 2252 2252 0 0 0 2252 0 150 1 17 1 35 31 1 0 0 0 120 0 1 0
3 2140 2140 0 0 0 2140 0 220 1 18 1 27 17 1 1 1 1 210 0 1 0
3 2133 2133 0 0 0 2133 0 250 1 17 1 36 39 0 1 0 0 240 0 1 0
3 1238 1238 0 0 0 1238 0 250 1 18 1 24 28 1 0 1 1 240 0 1 0
3 1631 1631 0 0 0 1631 0 150 1 40 1 27 21 1 0 1 0 690 1 2 1
3 2024 2024 0 0 0 2024 0 180 1 16 1 35 41 0 1 0 0 105 1 4 0
3 1345 1345 0 0 0 32 1 360 1 14 1 50 36 1 1 1 1 120 0 4 0
3 1136 1136 0 0 0 1136 0 140 1 15 1 47 27 1 0 1 0 900 0 3 1
3 845 845 0 0 0 845 0 845 0 20 1 40 39 0 0 1 1 210 1 3 1
3 491 422 1 1 1 491 0 180 1 491 0 22 21 0 0 0 0 210 1 1 0
3 162 162 1 0 1 162 0 162 0 13 1 22 23 1 0 0 1 300 0 1 0
3 1298 84 1 1 1 1298 0 1298 0 1298 0 8 2 0 0 1 0 105 1 1 0
3 121 100 1 1 1 28 1 121 0 65 1 39 48 1 1 1 1 210 1 1 0
3 2 2 1 0 1 2 0 2 0 2 0 20 19 1 1 0 0 75 1 1 0
3 62 47 1 1 1 62 0 62 0 11 1 27 25 1 1 0 0 90 1 1 0
3 265 242 1 1 1 265 0 210 1 14 1 32 32 1 0 0 0 180 1 1 0
3 547 456 1 1 1 547 0 130 1 24 1 31 28 1 0 1 1 630 1 1 0
3 341 268 1 1 1 21 1 100 1 17 1 20 23 0 1 1 1 180 1 1 0
3 318 318 1 0 1 318 0 140 1 12 1 35 40 0 1 1 1 300 0 1 0
3 195 32 1 1 1 195 0 195 0 16 1 36 39 1 1 0 0 90 1 1 0
3 469 467 1 1 1 469 0 90 1 20 1 35 33 0 0 1 0 120 0 1 0
3 93 47 1 1 1 93 0 93 0 28 1 7 2 1 1 0 0 135 1 1 0
3 515 390 1 1 1 515 0 515 0 31 1 23 25 1 1 1 0 210 1 1 0
3 183 183 1 0 1 183 0 130 1 21 1 11 7 0 1 0 0 120 1 1 0
3 105 105 1 0 1 105 0 105 0 105 0 14 18 1 0 0 0 150 1 1 0
3 128 115 1 1 1 128 0 128 0 12 1 37 35 0 0 1 1 270 0 1 0
3 164 164 1 0 1 164 0 164 0 164 0 19 32 0 0 0 1 285 1 1 0
3 129 93 1 1 1 129 0 129 0 51 1 37 34 0 1 1 0 240 1 1 0
3 122 120 1 1 1 122 0 122 0 12 1 25 29 0 1 1 1 510 1 1 0
3 80 80 1 0 1 21 1 80 0 0 1 35 28 1 0 0 0 780 1 1 0
3 677 677 1 0 1 677 0 150 1 8 1 15 14 1 1 1 0 150 1 1 0
3 73 64 1 1 1 73 0 73 0 38 1 45 42 0 1 1 0 180 1 2 1
3 168 168 1 0 1 168 0 200 1 48 1 32 43 0 1 1 1 150 1 2 1
3 74 74 1 0 1 29 1 74 0 24 1 41 29 0 1 1 1 750 0 2 1
3 16 16 1 0 1 16 0 16 0 16 0 27 36 0 0 1 0 180 0 4 0
3 248 157 1 1 1 248 0 100 1 52 1 33 39 0 0 1 1 180 1 4 0
3 732 625 1 1 1 732 0 732 0 18 1 39 43 0 1 1 1 150 1 4 0
3 105 48 1 1 1 105 0 105 0 30 1 17 14 0 1 0 0 210 1 4 0
3 392 273 1 1 1 392 0 122 1 24 1 43 50 1 1 1 0 240 0 3 1
3 63 63 1 0 1 38 1 63 0 16 1 44 37 1 1 0 0 360 1 3 1
3 97 76 1 1 1 97 0 97 0 97 0 48 56 1 1 1 1 330 0 3 1
3 153 113 1 1 1 153 0 153 0 59 1 31 25 0 1 1 1 240 0 3 1
3 363 363 1 0 1 363 0 363 0 19 1 52 48 1 1 1 0 180 0 3 1
;
run;
data bmt_all;
set bmt;
*if group=1;
Days= min(t1,t2);
if Days < 10 or Days > 600 then delete;
d= max(d1,d2);
label Days="Time to Relapse, Death, or End of Study in Days";
run;
title;
proc lifetest data=bmt_all plots=(survival(hw) logsurv);
time Days*d(0);
strata group;
format group disease.;
run;
ods graphics off;
ods pdf close;
ods listing;
This example code generates the appropriate graphs for PROC REG. View output.
data fitness;
input Age Weight Oxygen RunTime RestPulse RunPulse MaxPulse @@;
datalines;
44 89.47 44.609 11.37 62 178 182 40 75.07 45.313 10.07 62 185 185
44 85.84 54.297 8.65 45 156 168 42 68.15 59.571 8.17 40 166 172
38 89.02 49.874 9.22 55 178 180 47 77.45 44.811 11.63 58 176 176
40 75.98 45.681 11.95 70 176 180 43 81.19 49.091 10.85 64 162 170
44 81.42 39.442 13.08 63 174 176 38 81.87 60.055 8.63 48 170 186
44 73.03 50.541 10.13 45 168 168 45 87.66 37.388 14.03 56 186 192
45 66.45 44.754 11.12 51 176 176 47 79.15 47.273 10.60 47 162 164
54 83.12 51.855 10.33 50 166 170 49 81.42 49.156 8.95 44 180 185
51 69.63 40.836 10.95 57 168 172 51 77.91 46.672 10.00 48 162 168
48 91.63 46.774 10.25 48 162 164 49 73.37 50.388 10.08 67 168 168
57 73.37 39.407 12.63 58 174 176 54 79.38 46.080 11.17 62 156 165
52 76.32 45.441 9.63 48 164 166 50 70.87 54.625 8.92 48 146 155
51 67.25 45.118 11.08 48 172 172 54 91.63 39.203 12.88 44 168 172
51 73.71 45.790 10.47 59 186 188 57 59.08 50.545 9.93 49 148 155
49 76.32 48.673 9.40 56 186 188 48 61.24 47.920 11.50 52 170 176
52 82.78 47.467 10.50 53 170 172 52 82.78 47.467 10.50 53 170 172
;
ods html file="plots.html";
ods graphics on;
ods select where=(_path_ ? "DiagnosticPlots" );
proc reg data=fitness;
model oxygen=age;
run;
quit;
ods graphics off;
ods html close;