2014-10-30 2 views
3

SAS에서 히트 맵을 만들려고합니다. x, y 좌표가 큰 데이터 세트가 있는데 그게 전부입니다. 모든 것에 읽기에서, 나는 이런 식으로 뭔가를 사용하여 좌표를위한 "수"를 생성해야합니다히트 맵을 SAS에서 생성하십시오.

proc kde data=dataSet; 
    bivar X Y/out=outputDataSet; 
run; 

다음, 나는 heatchart에 대한 템플릿을 만들 필요를 -이 샘플 코드를 찾았지만, 내가 한 '이 무엇을하고 있는지 모든 것을 잘 모르겠어요 :

proc template; 
    define statgraph heatmapparm; 
    begingraph; 
     layout overlay; 
     heatmapparm x=value1 y=value2 colorresponse=count/
      name="heatmapparm" xbinaxis=false ybinaxis=false; 
     continuouslegend "heatmapparm"/location=outside valign=bottom; 
     endlayout; 
    endgraph; 
end; 
run; 

나는를 얻기 위해이 같은 코드를 사용 그때는 x와 y 명소로 내 변수를 삽입 할 필요가 가정, 그리고 colorresponse 장소에 수와있어 열역학도 :

이 코드는 "인수가 누락되어"오류 메시지와 그래프 출력을 발생시킵니다. 어떤 도움이라도 좋을 것입니다. 감사!

답변

3

릭 위클린은 블로그 (The DO Loop)에서이를 잘 설명합니다.

Sanjay Matange (GTL을 포함한 ODS 그래픽 시스템의 수석 개발자)와 같은 Graph Template Language (GTL)에 대한 자습서를 찾아야합니다. 그는 주제에 관한 책을 저술했거나 그의 논문을 읽을 수 있습니다 (예 : this introduction).

기본적으로 그렇습니다. x = 및 y =에 x/y 변수를, colorresponse = 개수를 정의하는 변수 (빨강/파랑으로 만드는 방법)로 채워야합니다.

다음은 예입니다. 여기서 우리는 dynamic variables을 사용합니다. 이는 SGRENDER 단계에서 관련 변수를 정의 할 수 있음을 의미합니다. Rick은 그의 블로그 게시물에 이것을 보여 주며 약간 간소화 된 버전을 사용합니다. PROC TEMPLATE을 그대로 사용하고 데이터 세트와 변수를 참조하도록 SGRENDER를 변경하면됩니다. test 데이터 세트는 흥미로운 히트 맵을 생성하는 구성 데이터입니다.

proc template; 
    define statgraph heatmapparm; 
    dynamic _X _Y _Z; 
    begingraph; 
     layout overlay; 
     heatmapparm x=_X y=_Y colorresponse=_Z/ 
      name="heatmapparm" xbinaxis=false ybinaxis=false; 
     continuouslegend "heatmapparm"/location=outside valign=bottom; 
     endlayout; 
    endgraph; 
    end; 
run; 

data test; 
    call streaminit(7); 
    do x = 1 to 10; 
    do y = 1 to 10; 
     count_var = rand('Normal',(x+y)/2); 
     output; 
    end; 
    end; 
run; 


proc sgrender data=test template=heatmapparm; 
dynamic _X='x' _Y='y' _Z='count_var'; 
run;