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; 

以下是使用的参数说明 −

  • DATASET − 是使用的数据集的名称。

  • VARIABLE − 是用于绘制箱线图的值。


简单箱线图

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

示例

在下面的示例中,我们选择变量马力作为第一个变量,类型作为类别变量。 所以我们得到了每种类型汽车马力值分布的箱线图。

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