Sas 简明教程

SAS - Pie Charts

饼图是用不同颜色的圆形切片表示值的表示形式。切片带有标签,并且与每个切片相对应的数字也显示在图表中。

在 SAS 中,饼图是使用 PROC TEMPLATE 创建的,它采用参数来控制百分比、标签、颜色、标题等。

Syntax

在 SAS 中创建饼图的基本语法为:

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = variable /
            DATALABELLOCATION = OUTSIDE
            CATEGORYDIRECTION = CLOCKWISE
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = ' ';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
  1. variable 是我们为其创建饼图的值。

Simple Pie Chart

在此饼图中,我们从数据集中获取单个变量形式。饼图的创建方式是,切片的价值表示相对于变量的总价值的变量计数分数。

Example

在下面的示例中,每个切片表示来自汽车总数的汽车类型的分数。

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

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type /
            DATALABELLOCATION = OUTSIDE
            CATEGORYDIRECTION = CLOCKWISE
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

当我们执行以上代码时,我们将得到以下输出:

piechart1

Pie Chart with Data Labels

在此饼图中,我们同时表示每个切片的数值分数和百分比值。我们还将标签的位置更改为图表内部。通过使用 DATASKIN 选项修改图表的外观风格。它使用 SAS 环境中可用的其中一种内置风格。

Example

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type /
            DATALABELLOCATION = INSIDE
            DATALABELCONTENT = ALL
            CATEGORYDIRECTION = CLOCKWISE
            DATASKIN = SHEEN
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

当我们执行以上代码时,我们将得到以下输出:

piechart2

Grouped Pie Chart

在此饼图中,图表中显示的变量值根据同一数据集中另一个变量分组。每组成为一个圆圈,并且该图表拥有尽可能多的同心圆,就像可用组的数量一样。

Example

在下面的示例中,我们按照名为“Make”的变量对图表进行分组。由于有两个可用值(“奥迪”和“宝马”),所以我们会得到两个同心圆,每个同心圆都代表各自品牌中的汽车类型。

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type / Group = make
            DATALABELLOCATION = INSIDE
            DATALABELCONTENT = ALL
            CATEGORYDIRECTION = CLOCKWISE
            DATASKIN = SHEEN
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

当我们执行以上代码时,我们将得到以下输出:

piechart3