Graph 在SAS中创建热图

Graph 在SAS中创建热图,graph,sas,heatmap,Graph,Sas,Heatmap,我希望在SAS中创建一个热图。我有一个x,y坐标的大数据集,就是这样。从阅读所有内容开始,我需要使用以下内容创建坐标的“计数”: proc kde data=dataSet; bivar X Y / out=outputDataSet; run; 接下来,我需要为热图创建一个模板——我已经找到了这个示例代码,但我不确定所有这些都在做什么: proc template; define statgraph heatmapparm; begingraph;

我希望在SAS中创建一个热图。我有一个x,y坐标的大数据集,就是这样。从阅读所有内容开始,我需要使用以下内容创建坐标的“计数”:

 proc kde data=dataSet;
     bivar X Y / out=outputDataSet;
 run;
接下来,我需要为热图创建一个模板——我已经找到了这个示例代码,但我不确定所有这些都在做什么:

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位置,然后使用如下代码获得热图:

proc sgrender data=outputDataSet template=heatmapparm;
run;

这段代码会导致一条错误消息,并且没有图形输出,因为它“缺少一个参数”。任何帮助都会很好。谢谢

Rick Wicklin在他的博客上很好地解释了这一点

您应该查阅有关图形模板语言(GTL)的教程,例如Sanjay Matange(包括GTL在内的ODS图形系统的首席开发人员)。他就这个话题写了一本书,你也可以读他的论文,比如

基本上,是的,您应该用x/y变量填写x=和y=,用定义计数的变量填写colorresponse=(红色/蓝色的表示方式)

这里有一个例子。这里我们使用
动态变量
,这意味着您可以在
SGRENDER
步骤中定义相关变量。Rick在他的博客文章中展示了这一点,我使用了一个稍微简化的版本。您可以完全按照原样使用
PROC模板
,只需更改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;