По группам, управляющим цветами линий / оператором where
Я хочу построить график Y по X, где я группирую по годам, но цветовой код года основан на другой переменной (сухой). Таким образом, каждый год отображается отдельной строкой, но сухой =1 год - один цвет, а сухой =0 - другой цвет. Я на самом деле понял один вариант (да!), Который ниже. Но это не дает мне много контроля.
Есть ли способ поместить предложение where в оператор серии, чтобы выбрать конкретные категории, чтобы я мог специально назначить цвет (или другой формат)? Или есть другой способ? Это было бы аналогично R, где можно использовать многострочные операторы для разных подмножеств данных.
Спасибо!!
Этот код работает.
proc sgplot data = tmp;
where microsite_id = "&msit";
by microsite_id ;
yaxis label= "Pct. Stakes" values = (0 to 100 by 20);
xaxis label= 'Date' values = (121 to 288 by 15);
series y=tpctwett x=jday / markers markerattrs=(symbol=plus) group = year grouplc=dry groupmc=dry;
format jday tadjday metajday jdyfmt.;
label tpctwett='%surface water' tadval1='breed' metaval1='meta';
run;
1 ответ
Используйте карту атрибутов, см. Документацию
Вы можете использовать переменную DRY для установки определенных цветов. Для каждого года назначьте цвет с помощью переменной DRY в шаге данных.
proc sort data=tmp out=attr_data; by year; run;
data attrs;
set attr_data;
id='year';
if dry=0 then linecolor='green';
if dry=1 then linecolor='red';
keep id linecolor;
run;
Затем добавьте dattrmap=attrs
в операторе PROC SGPLOT и attrid=year в опциях SGPLOT.
ods graphics / attrpriority=none;
proc sgplot data = tmp dattrmap=attrs;
where microsite_id = "&msit";
by microsite_id ;
yaxis label= "Pct. Stakes" values = (0 to 100 by 20);
xaxis label= 'Date' values = (121 to 288 by 15);
series y=tpctwett x=jday / markers markerattrs=(symbol=plus) group = year grouplc=dry groupmc=dry attrid=year;
format jday tadjday metajday jdyfmt.;
label tpctwett='%surface water' tadval1='breed' metaval1='meta';
run;
Обратите внимание, что я протестировал и отредактировал этот пост, так что теперь он должен работать.