2014-09-20 2 views
1

sas에 다음 코드를 작성했지만 결과를 얻지 못했습니다!드로잉 막대 그래프 및 막대 그래프

결과 히스토그램이 회색으로 표시되며 데이터 범위가 내가 지정한 값과 다릅니다. 문제가 무엇입니까?

내가 너무 다음과 같은 경고를 받았습니다 경고 : 중간 점 = 목록은 데이터

무슨 색깔에 대한을 수용 할 수 있도록 확장되었다?

axis1 order=(0 to 100000 by 50000); 
axis2 order=(0 to 100 by 5); 
run; 
proc capability data=HW2 noprint; 
histogram Mvisits/midpoints=0 to 98000 by 10000 
haxis=axis1 
cfill=blue; 
run; 

enter image description here .......................................

boxplot과 동일한 문제가 있습니다. 예를 들어 다음 그림이 있는데 거리를 변경하고 음모를 더 잘 볼 수는 있지만 그럴 수는 없습니다. 아래

enter image description here

+1

당신은 당신이 시각화에 관심이 있다면 모두 플롯 쓸모 렌더링하는 매우 큰 값을 가질 일반적인 값 (예 : 히스토그램의 경우 0-3000) 주위의 데이터 분포.어쨌든 SAS 프로그래밍과 관련하여이 질문은 논쟁 거리입니다. – chl

+0

가능한 [SAS 드로잉 막대 그래프] (http://stackoverflow.com/questions/25944250/drawing-histogram-in-sas) –

답변

2

내가 테스트하는 SAS/QC에 액세스 할 수없는, proc univariate보다는 proc capability입니다,하지만 사용자 가이드는 히스토그램 문에 대해 매우 유사한 구문을 보여줍니다. 바라기를 바꿔 다시 번역 할 수 있습니다.

출력 시스템으로 인해 색상에 문제가있는 것처럼 보입니다. 그래프는 ODS를 통해 전달 될 수 있습니다.이 경우 cfill 옵션이 적용되지 않습니다 (here 및 Traditional Graphics 태그 참조).

proc template; 
    define style styles.testStyle; 
     parent = styles.htmlblue; 
     style GraphDataDefault/
      color = green; 
    end; 
run; 

ods listing style = styles.testStyle; 

proc univariate data = sashelp.cars; 
    histogram mpg_city; 
run; 

이 설명 here 일례를 찾을 수있다 :

proc template 사용할 수 ODS 출력 히스토그램 바의 색상을 변경한다.

또는 다음과 같이 색상의 더 제어 히스토그램을 만들 proc sgplot를 사용할 수 있습니다

proc sgplot data = sashelp.cars; 
    histogram mpg_city/fillattrs = (color = red); 
run; 

을 히스토그램을 절단의 질문에 관해서. 그것은 히스토그램의 목적을 다소 상실하는 잘못된 분포 이미지를 제공하기 때문에 극단 값을 무시하는 것은 의미가 없습니다. 에서

data tempData; 
    set sashelp.cars; 
    tempClass = 1; 
run; 

proc univariate data = tempData noprint; 
    class tempClass; 
    histogram mpg_city/maxnbin = 5 endpoints = 0 to 25 by 5; 
run; 

을 더미 클래스 tempClass 위에서 생성 한 후 비교 히스토그램이 class 문을 사용하여 요청 : 그건 당신이 해킹의 비트를 요구하고 무엇을 달성 할 수 말했다. maxnbins은 비교 히스토그램에서만 표시되는 빈의 수를 제한합니다.

다른 옵션은 히스토그램을 만들기 전에 극단적 인 포인트를 제외 (또는 캡핑)하지만 약간 빈번한 빈도 카운트/백분율/막대 높이가됩니다.

data tempData; 
    set sashelp.cars; 
    mpg_city = min(mpg_city, 20); 
run; 

proc univariate data = tempData noprint; 
    histogram mpg_city/endpoints = 0 to 25 by 5; 
run; 

이 (NO SAS/QC 또는 데이터로 검증되지 않은) 원래의 질문에 가능한 접근 방식 :

proc capability data = HW2 noprint; 
    histogram Mvisits/
     midpoints = 0 to 300000 by 10000 
     noplot 
     outhistogram = histData; 
run; 
proc sgplot data = histData; 
    vbar _MIDPT_/
     response = _OBSPCT_ 
     fillattrs = (color = blue); 
    where _MIDPT_ <= 100000; 
run; 
+0

답변 주셔서 감사합니다 :) 그런데 어떻게 코드를 변경하여 boxplot이 더 명확 해지겠습니까? 또는 데이터 분포 때문에 boxplot이 너무 비정상적입니다 !!! –

+0

나는 히스토그램 문을 이해하기 위해 문서화하고 ODS와 proc sgplot을 읽고 시스템 작동 방법을 이해하면 장기적으로 시간을 절약 할 수 있다고 생각합니다. 즉, 위의 가능한 접근법을 추가했습니다. SAS/QC 또는 데이터가 없으므로 테스트되지 않았습니다. – SRSwift