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.
%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;
%*KEYLEGEND / LOCATION = INSIDE ;
ods graphics off;
**** 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;
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.
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:
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.