说到Annotate Facility,首先要感谢我的同事Jason,是他让我认识了Annotate Facility。Jason不仅是个画图高手,他的统计更是强到”令人发指“!现简单地介绍一下Annotate Facility的基本信息,希望能给想要学Annotate的SASers一点帮助。
Annotate Facility是SAS系统自带的一系列宏,常用的有以下几个:
- %LINE(x1, y1, x2, y2, color, line, size); --> 画一条从(x1, y1)到(x2, y2)的线
- %LABEL(x, y, text, color, angle, rotate, size, style, position); --> 在坐标为(x, y)处写上字符(text)
其中的Position的详细信息见下图:
比如我们要为柱状图添加95%可信区间(见下图),则参数POSITION='B'。
代码语言:javascript复制%label(TRTN, UPPERCL, "_", black, 0, 0, 1, simplex, B);
- %SYSTEM(xsys, ysys, hsys); --> 通过设定xsys, ysys和hsys(仅限3D图)的值来指定操作在画布中的位置变量
其中的xsys, ysys和hsys的值所代表的具体位置见下图:
比如要用坐标轴的值来确定Data Area中的位置就可以用 %system(2, 2),而要用X轴的值加画布的百分比值来确定Graphics Output Area中的位置就可以用%system(2, 3)。
以上宏的详细信息大家可以调用下面这个宏来查询:
代码语言:javascript复制%HELPANO(ALL)
使用Annotate Facility具体步骤如下:
- 调用宏%annomac,编译相关的宏以便后续直接调用;
- 建立Annotate的Dataset(如名为anno),设置color、text等变量的属性;
- 调用宏%system(xsys, ysys),以确定操作在画布中的具体位置;
- 调用宏%line和宏%label来画目的线条和字符;
- 在PROC GPLOT的plot语句后面加上annotate=anno。
参考文献:How to annotate graphics