The following attempt to create a PDF ODS plot using GTL reports (SAS 9.4M2 Win64):
NOTE: The graph will be rendered as an image due to the use of data skins.
SAS 9.4 online documentation provides a list of conditions (some specifically for 9.4M2) when "vector graphics image [the PDF default] cannot be generated". As far as I can tell, I've eliminated all features that prevent vector graphics, including the "data skins" mentioned in the NOTE.
At least two of the mentioned conditions, I may not fully understand, but I don't think I'm using either:
I'm not using a Scatterplot Outlined Marker Character.
And I'm not using a Textplot, with or without bounding box.
Any ideas?
Here's the code (a GTL approach based on Sanjay's Dec-2015 blog😞
/* Calculate summary stats, and concatenate onto heart data for GTL AxisTable */
proc sort data=sashelp.heart out=heart;
by bp_status smoking_status;
run;
proc summary data=heart noprint;
by bp_status smoking_status;
var diastolic;
output out=stats (drop=_type_ _freq_) mean=mean std=std;
run;
data heart;
set sashelp.heart
stats ;
run;
proc template;
define statgraph xalignedstats;
dynamic _GRP _CAT _MEASURE _STAT1 _STAT2 ;
begingraph / border=false dataskin=none;
layout overlay / walldisplay=none ;
boxplot x=_CAT y=_MEASURE / group=_GRP
groupdisplay=cluster;
innermargin / align=bottom ;
axistable x=_CAT value=_GRP / class=_GRP classdisplay=cluster;
axistable x=_CAT value=_STAT1 / class=_GRP classdisplay=cluster;
axistable x=_CAT value=_STAT2 / class=_GRP classdisplay=cluster;
endinnermargin;
endlayout;
endgraph;
end;
run;
goptions reset=all;
ods graphics on / reset=all;
ODS PDF FILE='mypdf.pdf';
proc sgrender data=heart template=xalignedstats;
dynamic
_GRP ='bp_status'
_CAT ='smoking_status'
_MEASURE ='diastolic'
_STAT1 ='mean'
_STAT2 ='std'
;
run;
ODS PDF CLOSE;
I do not see this error with SAS 9.40M3. I see you are using M2.
Also, you might try the split tick values.
layout overlay / walldisplay=none xaxisopts=(discreteopts=(tickvaluefitpolicy=splitrotate));
Many thanks for confirming so quickly, Sanjay.
Preventing the drawing of text on the diagonal (tickvaluefitpolicy of splitrotate) does *not* prevent this NOTE for me with SAS9.4M2.
I also tried turning off plot features one-by-one, but didn't manage to suppress this NOTE.
So the reasons mount for me to press our IT department to release M3 to us 🙂
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.