我已将我想要绘制的数据汇总为方框和胡须图。我添加了一个"异常值"指向某些类。我想要2个单独的图,一个有异常值,一个没有。
以下是我所拥有的:
data test;
input _stat_ $ _label_ $ col1 has_outlier;
datalines;
Max A 2.1837546442 0
Mean A 0 0
Median A 0.0101415946 0
Min A -2.698021137 0
Q1 A -0.656874482 0
Q3 A 0.6635898047 0
Max B 2.2346071965 1
Mean B 0 1
Median B -0.025621533 1
Min B -2.380132327 1
Q1 B -0.658781626 1
Q3 B 0.7248025307 1
Outlier B -2.120639115 1
Max C 1.9904289904 0
Mean C 0 0
Median C 0.0164299847 0
Min C -2.032578831 0
Q1 C -0.454702942 0
Q3 C 0.7259160175 0
;
proc template;
define statgraph boxplotparm1;
begingraph;
layout datapanel classvars=(has_outlier) / columns=2 rowdatarange=union;
layout prototype / cycleattrs=true;
boxplotparm x=_label_ y=col1 stat=_stat_ /
datalabel=datalabel spread=true dataskin=sheen outlierattrs=(color=red symbol=Asterisk);
endlayout;
endlayout;
endgraph;
end;
run;
/* Generate the plot. */
proc sgrender data=test template=boxplotparm1;
run;
我想从图表中删除没有箱形图的类。所以" No Outlier"小组应该只显示" A"和" C"和#34;异常值"小组应该只显示" B"。
答案 0 :(得分:1)
我认为你会得到你想要的COLUMNDATARANGE=UNION
来控制X轴。 UNIONALL
是默认值,并指示它在所有图表中具有一致的X轴; UNION
指示不要。
如果你走这条路线,你可能没有一张好看的图表,因为我怀疑宽度是正确的将会很有挑战性。
proc template;
define statgraph boxplotparm1;
begingraph;
layout datapanel classvars=(has_outlier) / columns=2 rowdatarange=union columndatarange=union;
layout prototype / cycleattrs=true;
boxplotparm x=_label_ y=col1 stat=_stat_ /
datalabel=datalabel spread=true
dataskin=sheen outlierattrs=(color=red symbol=Asterisk)
;
endlayout;
endlayout;
endgraph;
end;
run;