在 BOXPLOTPARAM (SAS GTL) 中分离数据
Separating Data in BOXPLOTPARAM (SAS GTL)
我已经汇总了要绘制为盒须图的数据。我为某些 类 添加了一个“异常值”点。我想要 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”,“Outlier”组应该只显示“B”。
我想你会用控制 X 轴的 COLUMNDATARANGE=UNION
得到你想要的。 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;
我已经汇总了要绘制为盒须图的数据。我为某些 类 添加了一个“异常值”点。我想要 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”,“Outlier”组应该只显示“B”。
我想你会用控制 X 轴的 COLUMNDATARANGE=UNION
得到你想要的。 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;