Что я пытаюсь сделать:Как использовать разные символы для групп x * y = z в proc gplot?
Я создаю участки, используя следующий код. PERIOD имеет 3 разных значения, поэтому сюжетные и plot2-заявления каждый создают 3 серии на графике с помощью запроса типа x * y = z. Я хочу, чтобы 3 серии из выражения сюжета имели символы, которые были объединены, и я хочу, чтобы 3 серии из выражения plot2 имели символы, которые не объединены. Независимо от того, какое решение я придумал, нужно работать внутри макроса.
Проблема
Независимо от того, что я стараюсь, все 6 серии на каждом графике не в конечном итоге с использованием тех же символов. Все другие параметры сюжета, которые я определяю вне вызовов proc gplot, правильно подбираются, так что я делаю неправильно с определениями символов? Я был бы признателен, если бы кто-нибудь смог опубликовать пример правильного синтаксиса.
Ссылка
Я нашел эту ссылку, которая производит очень похожий вид участка с различными символами для сюжета и Plot2 серии, но он не использует запрос у = г участка х *:
http://support.sas.com/techsup/technote/ts422.html
Я также нашел эту ссылку, которая содержит код, который использует у = запрос г х *, но без Plot2 заявления:
http://www.sfu.ca/sasdoc/sashtml/ets/chap2/sect27.htm
Эта страница утверждает, что это можно сделать как в то же самое время и получить различные символы для каждой серии, используя символы statments, но на самом деле не обеспечивают необходимый код, чтобы сделать это:
http://support.sas.com/documentation/cdl/en/graphref/63022/HTML/default/gplot-plot2.htm#gplot-fig5
примеры кода
Если я запускаю этот код, все 6 серии построены с Интерполом = NONE:
%macro sr_elas_plots(VAR);
goptions reset = all;
axis1 label=(angle = 90);
legend1 label=('Obs. elasticity');
legend2 label=('Quote volume');
proc gplot data = _p_&VAR;
symbol1 interpol=join value=dot height=3;
symbol2 interpol=join value=dot height=3;
symbol3 interpol=join value=dot height=3;
plot Elasticity*&VAR = PERIOD/legend = legend1 vaxis=axis1;
symbol1 interpol=none value = dot height=3;
symbol2 interpol=none value = dot height=3;
symbol3 interpol=none value = dot height=3;
plot2 QUOTES*&VAR = PERIOD/legend = legend2;
by NBIND CHANNEL;
run;
quit;
%mend sr_elas_plots;
Если я запускаю этот код, однако, все 6 построены с Интерполом = присоединиться:
%macro sr_elas_plots(VAR);
goptions reset = all;
axis1 label=(angle = 90);
legend1 label=('Obs. elasticity');
legend2 label=('Quote volume');
proc gplot data = _p_&VAR;
symbol1 interpol=join value=dot height=3;
symbol2 interpol=join value=dot height=3;
symbol3 interpol=join value=dot height=3;
plot Elasticity*&VAR = PERIOD/legend = legend1 vaxis=axis1;
symbol4 interpol=none value = dot height=3;
symbol5 interpol=none value = dot height=3;
symbol6 interpol=none value = dot height=3;
plot2 QUOTES*&VAR = PERIOD/legend = legend2;
by NBIND CHANNEL;
run;
quit;
%mend sr_elas_plots;
Другие вещи, которые я пробовал
- Если я перенесу 6 различных символов заявления так они все до первого заявления сюжета, все 6 серий построены с помощью интерполя = join.
- Если я перемещаю 6 различных выражений символов вне proc gplot, но все же внутри макроса, все 6 серий строятся с использованием интерполя = объединение.
- Если я перемещаю 6 различных операторов символов за пределами макроса и удаляю goptions reset = all из макроса, все 6 серий строятся с помощью interpol = join.
- Если я назначаю 6 различных значений = параметры в 6 разных символьных операторах (чтобы заставить их нарисовать разные символы), значение из символа4 используется для всех 6 рядов.
- Если я использую 2 переменные с 6 различными значениями для z в моих запросах 2 x * y = z, то же самое происходит.
Как я могу получить 3 серий каждого типа, когда у меня есть запрос у = г участок в х * как в сюжете и заявления Plot2?
Обратите внимание, что выражения символов являются глобальными операторами. Для меня они находятся вне шага. Я не использовал GRAPH через некоторое время, поэтому не могу дать окончательного ответа. Возможно, вам нужны только два оператора SYMBOL. Я думаю, что в обоих случаях, которые вы даете, используются инструкции SYMBOL1 и SYMBOL2. – DavB
@DavB Когда я устанавливаю 6 операторов символов, операторы SYMBOL1-3, по-видимому, игнорируются, а настройки для SYMBOL4 применяются к каждой серии (в соответствии с другими вещами, которые я пробовал). Установка только двух операторов символов также не работает. Раздражающе, похоже, не существует явного способа сопоставления серии сюжетов с выражением символа. – user667489
@ user667489 ... вы можете посмотреть http://support.sas.com/kb/25/581.html. Это может привести вас в правильном направлении. Если я получу шанс позже, я посмотрю – DavB