GTL Graph Template Language
Graph Template Language (GTL) 是ODS Graphics的核心,也是Output Delivery System (ODS)一个拓展。我们可以通过GTL设计自己想要的各种模板和图形。
1、怎么通过GTL生成想要的图
1.在 proc template 定义你所想要的 define statgraph
2.在 proc sgrender 指定自己定义的template模板
2、基础template结构
3、编译和保存template
每当我们运行 proc template 时,sas会编译并自动保存。我们可以在log看到这么一条提示:
4、使用proc sgrender生成图
看着很简单,实际上也就是这么简单。可以看到想完成图形的绘制,我们需要掌握的就是GTL statements
GTL GTL statement可以概括为两大类
▪ statements:
语法:关键字 必填参数 / 选填选项;
示例:scatterplot x=height y=weight / group=age;
解释:scatterplot是plot statements中绘制散点图的常用语句,x= 和 y=为必填参数,指定数据集中身高作为X轴,体重作为Y轴,按不同年龄分组描绘散点图。
▪ blocks:
blocks是一对指定开始结束的statements,其他的语句嵌套在里面。如上述的define statgraph - end和begingraph - endgraph。
Statements的种类
1.plot statements:各种图形的绘图语句,当我们需要找线图、散点图、柱形图等等,就在plot statements进行检索。
2.legend statements:图例的绘图语句,包括了离散型和连续型图例,离散型较为常用的语句有legenditem、discretelegend。
3.text statements:主要用于文本的插入,常见的是entrytitle、entryfootnote
4.layout statements:用于控制图中的各种元素的排版
layout statement是GTL的关键,它就像一个容器决定图的排版布局,包含各种元素。layout statement主要区分为单画格和多画格的布局。
常见的单画格(single-cell)有 layout overlay,可以叠加绘制2D图形的通用布局。
常见的多画格(mult-cell)有 layout lattice,可以叠加绘制2D/3D图形的多画格通用布局。所有的画格都需要预先定义,轴可以在行列共享,也可以在网格外部。
以下分别是两个layout在SAS help中的例图:
5.draw statements:GTL提供一些draw语句能使我们自由的在画布上绘制一些绘图元素,可以是文本,线,箭头和几何形状等等。
6.annotate statements:绘制注释数据集的内容
或许此时此刻还有小伙伴一脸懵逼!
稳住!我们手把手教学
GTL手把手教学
下面我们以sas help书上的例子为基础进行讲解
这是三家公司以2001年1月到12月为Y轴,以收盘价(close price)为X轴的线图,线段粗细程度反映了平均成交量,数据结构如下:
首先写好基础的blocks
然后根据《SAS® 9.4 Graph Template Language: Reference, Fifth Edition》中找到对应的 plot statements 找到自己想要的图形语句
这里我们使用seriesplot绘制线图
得到初步的图形
事情到这一步就开始简单起来了
感觉点不是很明显,咱们再加一个散点图
想换个样式
再完善一下
小编在此抛砖引玉,希望大家把更多的知识分享学习。看起来复杂的代码实际上都是一步步完成的,只要大家按照自己想要的功能把对应的语句添加进block就能得到想要的结果。
以上内容均来源于SAS HELP
《SAS® 9.4 Graph Template Language: User’s Guide, Fifth Edition》
《SAS® 9.4 Graph Template Language: Reference, Fifth Edition》