SAS: Как использовать макет ODS для размещения 8 графиков на 2 страницах PDF? - PullRequest
7 голосов
/ 18 февраля 2011

Я использую SAS ODS для создания PDF документов. Код ниже работает для размещения 4 графиков на 1 странице. Но если я попытаюсь разместить 8 графиков на 2 страницах, я получу только 4 графика на 1 странице. Я попытался скопировать часть между строками звездочек и вставить ее снова выше "ods pdf close;" но это не сработало. Я также попытался добавить "ods startpage = now;" между двумя, но это тоже не сработало. Как я могу разместить 8 графиков на 2 страницах?

goptions reset=all;

data test;
input x y @@;
datalines;
1 2 2 4 3 8 4 10 5 15
;
run;
ods pdf file="[path]/output.pdf" ;

****
ods layout Start width=10in height=8in ;
ods region x=0 y=5% width=45% height=45%;
proc gplot data=test;
title2 'PLOT #1';
plot y*x /name="mygraph1" noframe;
run;
ods region x=55% y=5% width=45% height=45%;
title2 'PLOT #2';
plot y*x /name="mygraph2" noframe;
run;
ods region x=0 y=51% width=45% height=45%;
title2 'PLOT #3';
plot y*x / name="Mygraph3" noframe;
run;
ods region x=55% Y=51% width=45% height=45%;
title2 'PLOT #4';
plot y*x / name="Mygraph4" noframe;
run;
quit;
ods layout end;
****

ods pdf close;

Код основан на этой статье .

1 Ответ

4 голосов
/ 19 февраля 2011

Хороший вопрос, на мой взгляд, это очень плохо документировано где-либо.

Вы почти у цели: вам нужно закрыть свой макет "контейнер", вызвать новую страницу, затем открыть новый макет для следующей страницы:

ods pdf file="file.pdf" startpage=never;

* page 1;
ods layout start <dimensions>;
ods region <dimensions>;
proc whatever; run;
ods region <dimensions>;
proc whatever; run;
ods layout end;

*<etc. for page 1 content>;

* start page 2;
ods pdf startpage=now;

* page 2;
ods layout start <dimensions>;
ods region <dimensions>;
proc whatever; run;
ods region <dimensions>;
proc whatever; run;
ods layout end;

*<etc. for page 2 content>;

ods pdf close;
...