Just going to make a plug for my survival graphing macro that I've shared on here: https://communities.sas.com/t5/SAS-Communities-Library/Kaplan-Meier-Survival-Plotting-Macro-NEWSURV/ta-p/479747
Maybe you'll find it helpful.
It has all sorts of features for survival graphs. I think you could make your graph with the following macro call:
%newsurv(data=file, time=os_time_km, cens=vitalstatusos_km, cen_vl=1, summary=0, display=, risklist=0 to 22.5 by 2.5, risklocation=inside, ylabel=Overall Survival Probability (%), yincrement=25, classdesc=At Risk, parheader=, riskdivider=0, height=550px, linesize=2.5, censormarkers=0)
;
... View more