Sas:如何使用 proc sgplot 绘制组图


您可以使用以下方法在 SAS 中使用PROC SGPLOT绘制组图:

方法 1:将每个组绘制在单独的图表中

 /*create multiple plots that show histogram of points for each team*/
proc sgplot data =my_data; 
   by team;
   histogram points;
   density points / type =kernel;
run ;

by语句告诉 SAS 为团队列中的每个唯一值创建单独的直方图。

方法 2:在单个图中绘制每个组

 /*plot histogram of points for each team on one chart*/
proc sgplot data =my_data; 
   histogram points / group =team;
   density points / type =kernel group =team;
run ;

指令告诉 SAS 为覆盖在同一图表上的团队列中的每个唯一值显示单独的直方图。

以下示例展示了如何在 SAS 中对以下数据集使用每种方法:

 /*create dataset*/
data my_data;
    input team $points;
    datalines ;
At 29
At 23
At 20
At 21
At 33
At 35
At 31
B 21
B14
B15
B 11
B 12
B 10
B15
;
run ;

/*view dataset*/
proc print data =my_data; 

示例 1:使用 PROC SGPLOT 将每个组绘制在单独的图表中

我们可以使用PROC SGPLOT中的by语句来创建单独的直方图,显示每个团队得分分布:

 /*create multiple plots that show histogram of points for each team*/
proc sgplot data =my_data; 
   by team;
   histogram points;
   density points / type =kernel;
run ; 

第一个直方图显示 A 队的得分分布,第二个直方图显示 B 队的得分分布。

注意密度声明是可选的,但它显示每个直方图的密度曲线,这可以是总结分布形状的有用方法。

示例 2:使用 PROC SGPLOT在图表中绘制每个组

我们可以使用PROC SGPLOT中的group语句创建一个图表,其中包含每个团队得分分布的重叠直方图:

 /*plot histogram of points for each team on one chart*/
proc sgplot data =my_data; 
   histogram points / group = team transparency = 0.5 ;
   density points / type =kernel group =team;
run ; 

SAS PROC SGPLOT 按组

蓝色直方图显示了A队的分值分布,红色直方图显示了B队的分值分布。

使用这种方法的优点是我们可以快速比较每个团队分值分布,因为每个直方图都放置在同一个图表上。

注意透明度参数使直方图透明并且在重叠时更易于阅读。将此值设置为1越多,直方图变得越透明。

其他资源

以下教程解释了如何在 SAS 中创建其他图表:

如何在 SAS 中创建线图
如何在 SAS 中按组创建箱线图
如何在 SAS 中创建带有回归线的散点图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注