SAS 饼图


饼图是将值表示为具有不同颜色的圆形切片。切片被标记并且对应于每个切片的数字也显示在图表中。

在 SAS 中,饼图是使用创建的 过程模板 它接受参数来控制百分比、标签、颜色、标题等。

语法

在 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;

以下是使用的参数说明:

  • 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 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

带有数据标签的饼图


在这个饼图中,我们表示每个切片的分数值和百分比值。我们还将标签的位置更改为图表内。使用 DATASKIN 选项修改图表的外观样式。它使用 SAS 环境中可用的一种内置样式。

例子

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

分组饼图


在此饼图中,图中显示的变量值相对于同一数据集的另一个变量进行分组。每个组变成一个圆圈,并且图表具有与可用组数一样多的同心圆。

例子

在下面的示例中,我们根据名为“Make”的变量对图表进行分组。由于有两个值可用(“Audi”和“BMW”),所以我们得到两个同心圆,每个代表各自制造的汽车类型的切片。

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