认识Annotate Facility

2020-07-16 10:15:40 浏览数 (1)

说到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具体步骤如下:

  1. 调用宏%annomac,编译相关的宏以便后续直接调用;
  2. 建立Annotate的Dataset(如名为anno),设置color、text等变量的属性;
  3. 调用宏%system(xsys, ysys),以确定操作在画布中的具体位置;
  4. 调用宏%line和宏%label来画目的线条和字符;
  5. 在PROC GPLOT的plot语句后面加上annotate=anno。

参考文献:How to annotate graphics

0 人点赞