Я пытаюсь создать график с несколькими группировками.Пример кода данных:
proc sort data=sashelp.cars out=cars;
by DriveTrain;
where n(Cylinders);
run;
Я использовал dattrmap
, чтобы добавить различные цвета к различным группам следующим образом:
data MyAttrMap;
length MARKERCOLOR CONTRASTCOLOR color $25;
ID='myreg'; value='All' ; MARKERCOLOR='red'; color='red'; MARKERSYMBOL = 'circle'; output;
ID='myreg'; value='Front'; MARKERCOLOR='blue'; color='blue'; MARKERSYMBOL = 'circle'; output;
ID='myreg1'; value='USA'; CONTRASTCOLOR='yellow'; color='yellow'; output;
ID='myreg1'; value='Europe'; CONTRASTCOLOR='black'; color='black'; output;
ID='myreg1'; value='Asia'; CONTRASTCOLOR='green'; color='green'; > > output;
run;
proc sgplot data=work.cars
dattrmap=MyAttrMap;
hbarparm category=enginesize response=horsepower/group=DriveTrain barwidth=.5 attrid=myreg name='dt';
scatter X=MPG_City Y=enginesize /group=origin name='origin' attrid=myreg1;
keylegend 'dt' / title='Drive Train' location=outside position=bottom;
keylegend 'origin' / title='Origin' location=outside position=bottom;
where DriveTrain in ('All' 'Front');
run;
Attrmap был создан с намерением иметь разные цвета для Origin
и DriveTrain
, однако, когда создается вывод, те же цвета, примененные к Origin, применяются к DriveTrain.
Я также пытался использовать шаблон Proc для изменения стиля следующим образом:
/*Different colors from the ones used above*/
proc template;
define style MyStyle;
parent = Styles.Listing;
STYLE graphdata1 /
MARKERSYMBOL = 'circle'
LINESTYLE = 1
CONTRASTCOLOR = liypk
COLOR = red
;
STYLE graphdata2 /
MARKERSYMBOL = 'circle'
LINESTYLE = 1
CONTRASTCOLOR = stybr
COLOR = yellow
;
STYLE graphdata3 /
MARKERSYMBOL = 'circle'
LINESTYLE = 1
CONTRASTCOLOR = mog
COLOR = green
;
STYLE graphdata4 /
MARKERSYMBOL = 'circle'
LINESTYLE = 1
CONTRASTCOLOR = brown
COLOR = pink
;
STYLE graphdata5 /
MARKERSYMBOL = 'circle'
LINESTYLE = 1
CONTRASTCOLOR = black
COLOR = grey
;
end;
run;
Но все же были получены те же результаты.Может кто-нибудь сказать мне, что я делаю неправильно или как заставить это работать?Я использую SAS 9.3.
Другая проблема, с которой я сталкиваюсь, - это сортировка.Я хочу отсортировать столбцы так, чтобы одно и то же происхождение появлялось вместе и по лошадиным силам.Я отсортировал, используя sortkey=national
, и использовал grouporder=data
в соответствии с рекомендациями SAS, но это не изменило порядок вывода.Любая помощь приветствуется.
.
Спасибо.