The sas code is in the program.jpg and the Expect results in the result.jpg, Many thanks in advance~
some reference
I'm not 100% sure, but I don't think unicode characacters are supported in the legend, directly, the way your code is trying (it would be nice/convenient if it worked that way, but I've tried it a few different ways and can't get it to work).
But I did get it to work a slightly different way ... rather than using a single series statement, with the group= creating 2 lines, you can create a separate variable for each line, and and then specify the unicode character in the 'legendlabel=' for each line.
I've mocked-up some data similar to yours to demonstrate...
data final;
input dosegp_ aval p1;
datalines;
16 0 0
16 1 0
16 1.8 0
16 1.8 5
16 1.8 10
16 1.8 27
16 1.9 69
16 3.9 69
16 4 90
16 22 90
20 0 0
20 .5 0
20 .5 11
20 1.8 11
20 1.8 44
20 2.2 44
20 2.2 62
20 19 62
20 19 100
20 22 100
;
run;
/* Rather than doing it this way...
proc sgplot data=final;
series x=aval y=p1 / group=dosegp_;
run;
*/
/* create 2 separate variables to plot */
data final_mod; set final;
if dosegp_=16 then p1_16=p1;
if dosegp_=20 then p1_20=p1;
run;
title "Kaplan-Meier";
footnote "Log-rank P value";
ods escapechar='^';proc sgplot data=final_mod;
series x=aval y=p1_16 / lineattrs=(color=red thickness=1.5 pattern=shortdash)
name='line16' legendlabel="16 mg/m^{unicode '00b2'x}";
series x=aval y=p1_20 / lineattrs=(color=blue thickness=1.5)
name='line20' legendlabel="20 mg/m^{unicode '00b2'x}";
scatter x=aval y=p1 / markerattrs=(symbol=plus size=7 color=black)
name='rp' legendlabel="Censor";
keylegend 'line16' 'line20' 'rp' / location=outside down=1 position=bottom;
yaxis label="Response Probability (%)" values=(0 to 100 by 10);
xaxis label="Time (Months)" values=(0 to 22 by 2);
run;
Yes,thanks, I dealt with it in the same way that you did and it worked.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.