I am specifying 8 pt font for my bar graph, but when I open the resulting PDF file I can see that the data value labels are only 7.59 pt and the legend value labels are 7.2pt. I thought it might be a result of using the scale=on option, but when I change it to scale=off, the font sizes are all 9.09 pt.
The x-axis is also too thick, even though I have specified the thickness as 0.75 pt in the proc template. See screenshot and code below.
proc template;
define style Custombar;
parent = Styles.Default;
class graphaxislines/contrastcolor=black linethickness=0.75pt;
class graphbackground/color=white;
class graphwalls/frameborder=off;
class graphborderlines/contrastcolor=white linethickness=0;
class graphlabeltext/fontfamily=Arial fontsize=8.5pt;
class graphvaluetext/fontfamily=Arial fontsize=8.5pt;
class body/backgroundcolor=white;
end;
run;
PROC IMPORT OUT= WORK.age DATAFILE= "E:\SAS figures\Age data.xlsx"
DBMS=xlsx REPLACE;
GETNAMES=YES;
RUN;
ods _all_ close;
options nonumber nodate orientation=landscape papersize=letter nocenter
leftmargin=.5in rightmargin=.5in topmargin=.5in bottommargin=.5in;
ods pdf file="E:/SAS figures/fig2_pdf.pdf" dpi=300 notoc accessible=on;
ods pdf style=Custombar;
ods graphics/border=off;
ods graphics on/reset=all width=6.5in scale=on ANTIALIASMAX=100000;
proc sgplot data=age noborder nowall;
styleattrs datacolors=('#0060A9' '#00a2e5' '#6dc069' '#ffc222');
vbar Year / response=Percent group=Group grouporder=data groupdisplay=stack clusterwidth=1.0 barwidth=0.6 nooutline;
xaxis discreteorder=data display=(nolabel noticks) valueattrs=(family=Arial size=8.5pt);
yaxis label="Percent of all admissions aged 12 and older" values=(0 to 100 by 20) display=(noticks) labelattrs=(family=Arial size=8pt weight=normal) valueattrs=(family=Arial size=8pt);
keylegend/title="" valueattrs=(family=Arial size=8.5pt) noborder scale=1.25 autooutline linelength=30 fillaspect=golden;
run;
ods graphics off;
ods pdf close;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.