楼主: caibirdcnb
30203 115

[学习分享] SAS9.3模板制图学习笔记 (graph template language)   [分享]

  • 0关注
  • 29粉丝

讲师

46%

还不是VIP/贵宾

-

威望
0
论坛币
1359 个
通用积分
2.0000
学术水平
64 点
热心指数
67 点
信用等级
61 点
经验
6615 点
帖子
206
精华
2
在线时间
431 小时
注册时间
2011-8-31
最后登录
2019-12-30

caibirdcnb 发表于 2013-1-19 18:10:02 |显示全部楼层
坚持每天写1、2页,慢慢积累。虽然,某一天当我熟练掌握SAS,或许就是我不再需要使用SAS的时候。。。

图表元素

图表元素
     

简单例子

简单例子
  1. proc template;                        
  2.         define statgraph scatterplot;               
  3.         begingraph;                 
  4.         entrytitle "Weight and Age by Sex";                 
  5.         layout overlay;               
  6.                 scatterplot x=age y=weight /         
  7.                         group=sex name="abc";
  8.                         discretelegend "abc";
  9.         endlayout;               
  10.         endgraph;               
  11.         end;               
  12. run;                        
  13.                         
  14. ods html;                        
  15. proc sgrender data=sashelp.class template=scatterplot;                        
  16. run;
复制代码

标题注脚

标题注脚
  1. proc template;                        
  2.         define statgraph scatterplot;               
  3.         begingraph;
  4.         entrytitle "Weight and Age by Sex";
  5.         entrytitle halign=left "Weight and Age by Sex"
  6.                                 / border=true
  7.                                 opaque=true
  8.                                 backgroundcolor=lightgreen
  9.                                 textattrs=(color=blue
  10.                                                         family='Arial'
  11.                                                         size=14
  12.                                                         style=italic
  13.                                                         weight=bold);
  14.     entryfootnote halign=center 'SMOON Confidential'
  15.                               halign=right "MIB";
  16.         
  17.         layout overlay;               
  18.                 scatterplot x=age y=weight /         
  19.                         group=sex name="abc";
  20.                         discretelegend "abc";
  21.         endlayout;               
  22.         endgraph;               
  23.         end;               
  24. run;                        
  25.                         
  26. ods html;                        
  27. proc sgrender data=sashelp.class template=scatterplot;                        
  28. run;
复制代码




————————————————————————————————————————————————————————————

图表选项

图表选项


从图形可以看到,设置backgroundcolor=lightblue后,背景颜色变成淡蓝色了;设置border=true和borderattrs=(color=pink thickness=3)后,边框变成粉红色并且加粗了;设置designwidth=400px和designheight=400px后,图表大小改变并且变成正方形了;设置pad=(bottom=50 right=50)后,下边和右边空白区域变大了。  
proc template;                        
        define statgraph scatterplot;               
        begingraph / backgroundcolor=lightblue
                            border=true
                            borderattrs=(color=pink thickness=3)
                            designwidth=400px
                            designheight=400px
                            pad=(bottom=50 right=50);                 
        entrytitle "Weight and Age by Sex";                 
        layout overlay;               
                scatterplot x=age y=weight /         
                        group=sex name="weight";
                        discretelegend "weight";
        endlayout;               
        endgraph;               
        end;               
run;
ods html;                        
proc sgrender data=sashelp.class template=scatterplot;                        
run;

————————————————————————————————————————————————————————————
布局选项.jpg


对比上下2个图形,可以看到设置aspecratio=0.7后,绘图区域形状变了;设置cycleattrs=true后,图形颜色从2种颜色变成4种颜色。
proc template;
define statgraph seriesplot;
        begingraph / designwidth=360px designheight=260px;
        entrytitle "Tech Stock Trends";
        layout overlay / yaxisopts=(label='price')
                                aspectratio=0.7
                                cycleattrs=true;
                seriesplot x=date y=close / group=stock name="stocks"
                        lineattrs=(thickness=3);
                seriesplot x=date y=high / group=stock
                        lineattrs=(thickness=3);
                discretelegend "stocks";
        endlayout;        
        endgraph;
        end;
run;
proc sgrender data=sashelp.stocks template=seriesplot;
  where date > "31dec1999"d and stock^='IBM';
run;

————————————————————————————————————————————————————————————
布局选项2.jpg


对比上下2个图形,可以看到设置opaque=true和backgroundcolor=lightyellow后,布局背景颜色变成淡黄色;设置border=true和borderattrs=(color=blue pattern=dash thickness=2)后,布局区域显示边框,并且边框属性为蓝色、破折线、加粗;设置pad=(top=50)后,布局上方和图表距离变大了;设置wallcolor=lightgray和walldisplay=(fill)后,绘图区域背景颜色变成淡灰色。
proc template;
define statgraph seriesplot;
        begingraph / designwidth=360px designheight=260px;
        entrytitle "Tech Stock Trends";
        layout overlay / yaxisopts=(label='price')
                                aspectratio=auto
                                backgroundcolor=lightyellow
                                border=true
                                borderattrs=(color=blue pattern=dash thickness=2)  
                                cycleattrs=true
                                opaque=true
                                pad=(top=50)
                                wallcolor=lightgray
                                walldisplay=(fill);         
                seriesplot x=date y=close / group=stock name="stocks"
                        lineattrs=(thickness=3);
                seriesplot x=date y=high / group=stock
                        lineattrs=(thickness=3);
                discretelegend "stocks";
        endlayout;        
        endgraph;
        end;
run;
proc sgrender data=sashelp.stocks template=seriesplot;
  where date > "31dec1999"d and stock^='IBM';
run;

————————————————————————————————————————————————————————————
坐标轴元素.jpg

坐标轴通用设置.jpg


从图形对比左右Y轴,可以看到设置display=(label tickvalues) 后,轴线和标记不显示了;设置griddisplay=on 后,显示刻度线;设置label="population (%)"和labelattrs=(color=blue weight=bold) 后,标签属性变成蓝色加粗;设置xaxisopts=(display=none) 后,X轴不显示了。
proc template;
        define statgraph y2axis;
        begingraph / designwidth=360px designheight=360px;
        layout overlay / walldisplay=none
                                yaxisopts=(display=(label tickvalues)
                                                    griddisplay=on
                                                    label="population (%)"
                                                    labelattrs=(color=blue weight=bold)
                                                    name="Y")
                                xaxisopts=(display=none);
                histogram height / scale=count yaxis=y2 name="height";
                histogram height / scale=proportion yaxis=y;
                densityplot height / normal();
                discretelegend "height";
        endlayout;
        endgraph;
        end;
run;
proc sgrender data=sashelp.class template=y2axis;
run;










关键词:Template Language plate GRAPH lang 学习 制图

图表尺寸

图表尺寸
page6.jpg
布局选项.jpg
已有 21 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
np84 + 100 精彩帖子
zl89 + 80 精彩帖子
xujingtang + 100 + 1 精彩帖子
kychan + 60 继续坚持
eijuhz + 20 精彩帖子
dxmin + 1 + 1 + 1 精彩帖子
larry_dh + 1 + 1 精彩帖子
victorwxw + 1 + 1 精彩帖子
Tigflanker + 1 + 1 + 1 优质
wengaohui360101 + 1 热心帮助其他会员

总评分: 经验 + 520  论坛币 + 10  学术水平 + 25  热心指数 + 28  信用等级 + 23   查看全部评分

本帖被以下文库推荐

stata SPSS
天堂之路 发表于 2013-1-19 18:24:27 |显示全部楼层
顶一下
回复

使用道具 举报

cylqd 发表于 2013-1-19 18:35:29 |显示全部楼层
楼主牛人
回复

使用道具 举报

ziyenano 发表于 2013-1-20 11:09:46 |显示全部楼层
非常好的东西!
回复

使用道具 举报

lookslike 发表于 2013-1-20 18:03:29 |显示全部楼层
弱弱问这样的数据可以用EXCEL做么,考虑到作图效率和学习成本的话,没有冒犯的意思哦!
回复

使用道具 举报

goldbaodi 发表于 2013-1-21 11:56:27 |显示全部楼层

顶一下
回复

使用道具 举报

xueyinchina 发表于 2013-1-24 18:55:52 |显示全部楼层
顶~~~~
心有多大,舞台就有多大。
回复

使用道具 举报

威尼熊泡泡 发表于 2013-1-24 21:31:25 |显示全部楼层
回复

使用道具 举报

cwq_cwq 发表于 2013-1-28 09:32:30 |显示全部楼层
新手报到,谢谢分享!
回复

使用道具 举报

beci426 发表于 2013-1-29 15:17:25 |显示全部楼层
太棒了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2020-8-14 10:19