I am trying to create a plot via PROC SGPLOT. The variable on the Y-axis has a very long label, which SAS splits to make it fit. I want to control where the split happens, rather than let SAS control the split. The ODS ESCAPECHAR and `{newline 1} in the code produces a message in the log that I can't do it that way. Is there some other way I can cause this label to be split where I want it to be split?
1262 ods escapechar = '`'; 1263 ods pdf file="&pers\test.pdf"; NOTE: Writing ODS PDF output to DISK destination "g:\MillerP\test.pdf", printer "PDF". 1264 proc sgplot data=sashelp.class; 1265 scatter x=height y=weight; 1266 yaxis label='This is a very long label `{newline 1} that is probably too long'; 1267 run; NOTE: PROCEDURE SGPLOT used (Total process time): real time 0.72 seconds cpu time 0.34 seconds NEWLINE FUNCTION NOT DEFINED IN THIS TAGSET NEWLINE FUNCTION NOT DEFINED IN THIS TAGSET NOTE: There were 19 observations read from the data set SASHELP.CLASS. 1268 ods pdf close;
This produces the following plot where the label is split where SAS wants to split it and not where I want to split it.
Perhaps:
proc sgplot data=sashelp.class; scatter x=height y=weight; yaxis label="This is a very long label (*ESC*){unicode '000A'x} that is probably too long"; run;
000A is linefeed, so might be OS and or file dependent. Did not test with PDF
Perhaps:
proc sgplot data=sashelp.class; scatter x=height y=weight; yaxis label="This is a very long label (*ESC*){unicode '000A'x} that is probably too long"; run;
000A is linefeed, so might be OS and or file dependent. Did not test with PDF
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.