BookmarkSubscribeRSS Feed
Obsidian | Level 7

I get some strange behavior when using 'ods pdf columns=2' approach to generating two columns of plots with sgplot. The problem lies with the keylegend option in sgplot.

I want to generate six plots: plots1-4 in the left column and plots 5-6 in the right column.

Consider the following example. The program behaves properly when the 'keylegend' statement is commented out. However, if the 'keylegend' is used, then the right columns disappear. This has nothing to do with the location = option. The option can be omitted (so that an empty keylegend appears in the code) and the right column still vanishes.

%macro plt;

%do i = 1 %to 6;

%if i = 5 %then %do; ods pdf startpage = now; %end;

ods graphics on / reset = all height = 3.75 in width = 7 in noborder  ;

proc sgplot data = d1;

      series x = x y = y / group = g;


      inset "Plot&i.";


ods graphics off;


%mend plt;

**** Play Data ****;

data d1; do g = 1,2;    do x = 1 to 10; y=x+g; output; end; end; run;

options orientation=portrait pageno = 1 ;

ods pdf file = "c:\TEST &SYSDATE..pdf" startpage = never ;

ods pdf columns = 2;

ods pdf startpage = now;


ods pdf close;

Meteorite | Level 14

Which version of SAS are you using?  This runs correctly on SAS 9.2(TS2M3).  See attached output file.

Obsidian | Level 7

Interesting! I use 9.3....

SAS Employee

There were a number of defects associated with the startpage option in 9.2 which have been fixed in 9.3.   In 9.2 you had to do that startpage=never/now jive.  That is no longer necessary.   The correct 9.3 code would be as follows.

ods pdf file="c:\TEST &SYSDATE..pdf" startpage=no columns=2;


ods pdf close;

I noticed that you also had a "width=7in" in your plt macro which is incorrect, and is being ignored.  You have a portrait letter page which is 8.5inx11in  minus the .25in margins all around, so you actually have 8inx10.5in of available. space. The columns= options evenly divides the available space into evenly size columns.  So your available width for each column happens to be 4in.

Obsidian | Level 7

Many thanks for your help. I made your suggested change and reduced the height/width to 2x4inches. 

I still don't get the correct output when KEYLEGEND is included....

Calcite | Level 5

I am also having problems with ODS pdf and startpage=never.

I am using  ODS pdf to create a report from several statistical procedures and using startpage=never.

It works in 9.2 but in 9.3 my first page is a blank page with only the title...:smileyconfused:


SAS Employee


If you could send me a small snippet of your code to I will take a look at it and offer some suggestions.  Smiley Happy




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. 

Register now!

How to Concatenate Values

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.

Get the $99 certification deal.jpg



Back in the Classroom!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 5 in conversation