SAS - 箱线图



箱线图是通过四分位数对数值数据组进行图形表示。箱线图也可能在框体上延伸出垂直线(须线),指示上四分位数和下四分位数之外的变异性。框体的底部和顶部始终是第一和第三四分位数,框体内的带状区域始终是第二四分位数(中位数)。在 SAS 中,使用 **PROC SGPLOT** 创建简单的箱线图,使用 **PROC SGPANEL** 创建面板箱线图。

请注意,我们在第一个示例中创建了一个名为 CARS1 的数据集,并在所有后续数据集中使用相同的数据集。此数据集在 SAS 会话结束之前一直保留在工作库中。

语法

在 SAS 中创建箱线图的基本语法如下:

PROC SGPLOT  DATA = DATASET;
   VBOX VARIABLE / category = VARIABLE;
RUN; 

PROC SGPANEL  DATA = DATASET;;
PANELBY VARIABLE;
   VBOX VARIABLE> / category = VARIABLE;
RUN; 

以下是所用参数的说明:

  • **数据集** - 是所用数据集的名称。

  • **变量** - 是用于绘制箱线图的值。

简单箱线图

在简单箱线图中,我们从数据集中选择一个变量作为第一个变量,另一个变量作为类别变量。第一个变量的值被分类为与第二个变量中不同值的个数一样多的组。

示例

在下面的示例中,我们选择变量 horsepower 作为第一个变量,type 作为类别变量。因此,我们获得了每种类型汽车的 horsepower 值分布的箱线图。

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

PROC SGPLOT  DATA = CARS1;
   VBOX horsepower 
   / category = type;

   title 'Horsepower of cars by types';
RUN; 

执行上述代码后,我们将获得以下输出:

box_plot_1

垂直面板中的箱线图

我们可以将一个变量的箱线图划分为多个垂直面板(列)。每个面板包含所有类别变量的箱线图。但是,箱线图将使用另一个第三个变量进一步分组,该变量将图形划分为多个面板。

示例

在下面的示例中,我们使用变量“make”对图形进行了面板化。由于“make”有两个不同的值,因此我们得到了两个垂直面板。

PROC SGPANEL  DATA = CARS1;
PANELBY MAKE;
   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN; 

执行上述代码后,我们将获得以下输出:

box_plot_2

水平面板中的箱线图

我们可以将一个变量的箱线图划分为多个水平面板(行)。每个面板包含所有类别变量的箱线图。但是,箱线图将使用另一个第三个变量进一步分组,该变量将图形划分为多个面板。在下面的示例中,我们使用变量“make”对图形进行了面板化。由于“make”有两个不同的值,因此我们得到了两个水平面板。

PROC SGPANEL  DATA = CARS1;
PANELBY MAKE / columns = 1 novarname;

   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN; 

执行上述代码后,我们将获得以下输出:

box_plot_3
广告