Data visualization with SAS programming

Why? NOTE: The graph will be rendered as an image due to the use of data skins.

Reply
Occasional Contributor DDT
Occasional Contributor
Posts: 18

Why? NOTE: The graph will be rendered as an image due to the use of data skins.

[ Edited ]

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:

  • "graphs that contain outline marker characters"
  • "graphs that include a text plot that displays text with an outlined bounding box or text with a filled bounding-box background"

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;

SAS Super FREQ
Posts: 1,139

Re: Why? NOTE: The graph will be rendered as an image due to the use of data skins.

[ Edited ]

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));

 

 

Occasional Contributor DDT
Occasional Contributor
Posts: 18

Re: Why? NOTE: The graph will be rendered as an image due to the use of data skins.

[ Edited ]

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 Smiley Happy

Ask a Question
Discussion stats
  • 2 replies
  • 334 views
  • 0 likes
  • 2 in conversation