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 🙂
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
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.