%let gpath=C:\; ods html close; %let w=5in; %let h=3in; %let dpi=300; ods listing style=htmlblue gpath="&gpath" image_dpi=&dpi; /*--This sample uses data from sample 49_2_1--*/ proc format; value risk 1='ALL' 2='AML-Low Risk' 3='AML-High Risk'; /*--Data for proc LIFETEST sample 49_2_1--*/ data BMT; input Group T Status @@; format Group risk.; label T='Disease Free Time'; datalines; 1 2081 0 1 1602 0 1 1496 0 1 1462 0 1 1433 0 1 1377 0 1 1330 0 1 996 0 1 226 0 1 1199 0 1 1111 0 1 530 0 1 1182 0 1 1167 0 1 418 1 1 383 1 1 276 1 1 104 1 1 609 1 1 172 1 1 487 1 1 662 1 1 194 1 1 230 1 1 526 1 1 122 1 1 129 1 1 74 1 1 122 1 1 86 1 1 466 1 1 192 1 1 109 1 1 55 1 1 1 1 1 107 1 1 110 1 1 332 1 2 2569 0 2 2506 0 2 2409 0 2 2218 0 2 1857 0 2 1829 0 2 1562 0 2 1470 0 2 1363 0 2 1030 0 2 860 0 2 1258 0 2 2246 0 2 1870 0 2 1799 0 2 1709 0 2 1674 0 2 1568 0 2 1527 0 2 1324 0 2 957 0 2 932 0 2 847 0 2 848 0 2 1850 0 2 1843 0 2 1535 0 2 1447 0 2 1384 0 2 414 1 2 2204 1 2 1063 1 2 481 1 2 105 1 2 641 1 2 390 1 2 288 1 2 421 1 2 79 1 2 748 1 2 486 1 2 48 1 2 272 1 2 1074 1 2 381 1 2 10 1 2 53 1 2 80 1 2 35 1 2 248 1 2 704 1 2 211 1 2 219 1 2 606 1 3 2640 0 3 2430 0 3 2252 0 3 2140 0 3 2133 0 3 1238 0 3 1631 0 3 2024 0 3 1345 0 3 1136 0 3 845 0 3 422 1 3 162 1 3 84 1 3 100 1 3 2 1 3 47 1 3 242 1 3 456 1 3 268 1 3 318 1 3 32 1 3 467 1 3 47 1 3 390 1 3 183 1 3 105 1 3 115 1 3 164 1 3 93 1 3 120 1 3 80 1 3 677 1 3 64 1 3 168 1 3 74 1 3 16 1 3 157 1 3 625 1 3 48 1 3 273 1 3 63 1 3 76 1 3 113 1 3 363 1 ; run; /*--Get survival plot data from LIFETEST procedure--*/ ods graphics on; ods output Survivalplot=SurvivalPlotData; proc lifetest data=BMT plots=survival(atrisk=0 to 2500 by 500); time T * Status(0); strata Group / test=logrank adjust=sidak; run; /*--Survival Plot with outer Risk Table using AxisTable--*/ ods listing style=htmlblue; ods graphics / reset width=5in height=3in imagename='Survival_Plot_SG'; title 'Product-Limit Survival Estimates'; title2 h=0.8 'With Number of Subjects at Risk'; footnote j=l h=6pt italic 'This visual is for discussion of graph features only.' ' The actual details should be customized by user to suit their application.'; proc sgplot data=SurvivalPlotData noborder; step x=time y=survival / group=stratum name='s'; scatter x=time y=censored / markerattrs=(symbol=plus) name='c'; scatter x=time y=censored / markerattrs=(symbol=plus) GROUP=stratum; xaxistable atrisk / x=tatrisk class=stratum colorgroup=stratum valueattrs=(weight=bold); keylegend 'c' / location=inside position=topright; keylegend 's' / linelength=20; run; /*--Survival Plot with outer Risk Table using AxisTable with Zero alignment--*/ ods listing style=htmlblue; ods graphics / reset width=5in height=3in imagename='Survival_Plot_SG_Zero'; title 'Product-Limit Survival Estimates'; title2 h=0.8 'With Number of Subjects at Risk'; footnote j=l h=6pt italic 'This visual is for discussion of graph features only.' ' The actual details should be customized by user to suit their application.'; proc sgplot data=SurvivalPlotData noborder; styleattrs axisextent=data; dropline x=0 y=0.2 / dropto=y; dropline x=0 y=0.4 / dropto=y; dropline x=0 y=0.6 / dropto=y; dropline x=0 y=0.8 / dropto=y; dropline x=0 y=1.0 / dropto=y; step x=time y=survival / group=stratum name='s'; scatter x=time y=censored / markerattrs=(symbol=plus) name='c'; scatter x=time y=censored / markerattrs=(symbol=plus) GROUP=stratum; xaxistable atrisk / x=tatrisk class=stratum colorgroup=stratum valueattrs=(weight=bold); keylegend 'c' / location=inside position=topright; keylegend 's' / linelength=20; yaxis display=(noline noticks); run; data SurvivalPlotData2; set SurvivalPlotData end=last; output; if last then do; call missing (time, survival, atrisk, event, censored, tatrisk, stratum, stratumnum); dropx=0; dropy=0.2; output; dropy=0.4; output; dropy=0.6; output; dropy=0.8; output; dropy=1.0; output; end; run; /*proc print;run;*/ /*--Survival Plot with inner Risk Table using AxisTable with Zero alignment inside--*/ ods listing style=htmlBlue; ods graphics / reset width=5in height=3in imagename='Survival_Plot_SG_Zero_Inside'; title 'Product-Limit Survival Estimates'; title2 h=0.8 'With Number of Subjects at Risk'; footnote j=l h=6pt italic 'This visual is for discussion of graph features only.' ' The actual details should be customized by user to suit their application.'; proc sgplot data=SurvivalPlotData2 noborder; styleattrs axisextent=data; dropline x=dropx y=dropy / dropto=y; refline 0 / axis=x; step x=time y=survival / group=stratum lineattrs=(pattern=solid) name='s'; scatter x=time y=censored / markerattrs=(symbol=plus) name='c'; scatter x=time y=censored / markerattrs=(symbol=plus) GROUP=stratum; xaxistable atrisk / x=tatrisk location=inside class=stratum colorgroup=stratum valueattrs=(size=7 weight=bold) labelattrs=(size=8) nomissingclass; keylegend 'c' / location=inside position=topright; keylegend 's' / linelength=20; yaxis display=(noline noticks); run; title; footnote;