2017-10-23 8 views
1

박스 및 수염 그림으로 플롯하려는 데이터를 요약했습니다. 특정 클래스에 "이상 값"포인트를 추가했습니다. 나는 2 개의 분리 된 플롯을 원한다. 하나는 이상치가 있고 다른 하나는없는 것이다.BOXPLOTPARAM (SAS GTL)에서 데이터 분리

는 여기에 내가있어 무엇 :이 생산

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; 

: enter image description here

내가 더 박스 플롯이 없다 차트에서 클래스를 제거하고 싶습니다. 그래서 "Outlier"그룹은 "A"와 "C"만을 표시하고 "Outlier"그룹은 "B"만을 표시해야합니다.

답변

1

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; 

Image of desired graph

+0

당신은'includemissinggroup = FALSE '하는 것은 또한'BOXPLOTPARM' 문에 필요하다는 것을 언급해야한다. – DomPazz

+1

@DomPazz 사실 나는 그것이 있다고 생각하지 않습니다. 나는 그걸 가지고 놀고 있었고 그것을 꺼내는 걸 잊었습니다. – Joe