sas学习笔记之GTL画图2

sas学习之GTL画图2

关于template画图中的options

数据点:datalabel datalabelposition datalabelattrs
线值: curvelabel curvelabelposition curvelabelattrs

layout
scatterplot
seriesplot
stepplot
bandplot
boxplot
discetelegend

在这里插入图片描述

  • layout overlay / options:控制画布中的相关参数,比如一个画布中两个图的比例问题等。
    xaxisopts = (griddisplay=off/on label = ‘response’):
    griddisplay: x轴的网格线是否展示
    label :x轴的名字
    offsetmin=0:第一个ticks距离x轴的距离
    offsetmin:最后一个ticks距离y轴的距离
    yaxisopts = (griddisplay=off/on display =(ticks tickvalues)):
    griddisplay: y轴的网格线是否展示
    display: 坐标轴展示的东西
    columns=1:一行中有几张图(即,若有2张图时按时并列放置)
    rowweights=(0.9 0.1):两张图的比例问题,第一个参数表示第一张图在画布中的占比,第二个参数表示第二张图在画布中的占比
    columndatarange=union:几张图有相同的刻度
    display=(ticks tickvalues)
    discreteopts=(colorbands=odd)

- scatterplot:散点图(以sashelp.class数据集为例)
scatterplot x=height y =weight / options;

proc template;
 define statgraph Fig_4_5_3;
 begingraph;
 entrytitle 'Spline Fit Plot Mileage by Horsepower';
   layout overlay / yaxisopts=(griddisplay=on);
     scatterplot x=horsepower y=mpg_city/
     group=age datalabel=name name='b'
     ;
   endlayout;
 endgraph;
 end;
run; 
proc sgrender data=sashelp.cars(where=(type='Sedan'))
 template=Fig_4_5_3;
run;

在这里插入图片描述

group = sex:分组
datalabel = name/age:每个点的展示值
name = ‘a’:给该图命名
- seriesplot:
seriesplot x=date y=val /;

*准备数据集;
data GTL_GS_SeriesGroup; 
 format Date Date9.; 
   do i=0 to 334 by 30; 
     date='01jan2009'd+i; 
     if mod (i, 30) =0 then freq=1; else freq=0; 
       Drug='Drug A'; Val = 16+ 3*sin(i/90+0.5) + 1*sin(3*i/90+0.7); output; 
       Drug='Drug B'; Val = 10+ 3*sin(i/90+0.5) + 1*cos(3*i/90+0.7); output; 
       Drug='Drug C'; Val = 6+ 3*cos(i/90+0.5) + 1*sin(3*i/90+0.7); output; 
 end; 
run;

proc template;
 define statgraph Fig_4_2_2;
   dynamic _title;
     begingraph / subpixel=on;
     entrytitle 'Response by Time by Treatment';
     layout overlay / yaxisopts=(griddisplay=on label='Response')
                      xaxisopts=(griddisplay=on display=(ticks tickvalues));

     seriesplot x=date y=val / group=drug curvelabel=drug name = 'a'
               display=(markers) smoothconnect=true
                lineattrs=(thickness=2);*curvelabel:线的label;

     discretelegend 'a' / location=inside title='drug:' halign=right
                                                        valign=top;
     endlayout;
     endgraph;
 end;
run;
proc sgrender data=GTL_GS_SeriesGroup template=Fig_4_2_2;
run;

在这里插入图片描述

seriesplot x=date y=val / options;
group=drug:按某一变量分组
curvelabel=drug:每条线的名字
display=(markers):每个数据点用圆圈展示出来
markerattrs=(symbol=circlefilled/diamondfilled/starfilled size = 10):数据点的形状
smoothconnect=true/false:线平滑与否
lineattrs=(thickness=2 pattern = dash):线的粗细

- stepplot:
stepplot x=date y=val /;
在这里插入图片描述

stepplot x=date y=val / options;
group=drug; lineattrs=(pattern=solid)
errorupper=upper:每个数据点的上限
errorlower=lower:每个数据点的下限
justify=center/left/right:连线的位置以中间/左边/右边数据为准
display=(markers):展示数据点 markerattrs=(symbol=circlefilled):数据点的形状、颜色等
datalabel = val:展示数据点的值
break=true/false:对于缺失数据的处理,true:空白处理;false:不显示数据点,但有线条
curvelabel=drug:每条线的名称(线旁的DrugA等);curvelabelposition=min/max:名称的位置

- bandplot:
bandplot x=date limitupper=upper limitlower=lower;

在这里插入图片描述

display=(fill outline):轮廓及填充展示
outlineattrs=(pattern=solid thickness=2)
fillattrs=(transparency=0.5):透明度,1:完全透明;0:完全不透明
datalabelposition=top:数据点值的位置
datalabelattrs=(size=10):数据点值的属性

宏变量的应用

proc template;
  define statgraph Fig_4_2_4_1;
  dynamic title "都会觉得和";*有宏变量时,设定初始值,可任意设置;
    begingraph / subpixel=on;
      entrytitle 'Response over Time' title;
      layout overlay / yaxisopts=(label='Response')
                      xaxisopts=(display=(ticks tickvalues));

      bandplot x=date limitupper=upper limitlower=lower /
              group=drug 
              /* display=(fill outline)*/
              outlineattrs=(pattern=solid thickness=2)
              fillattrs=(transparency=0.5) name='a';

      discretelegend 'a' / location=inside
              halign=right valign=top across=1;
      endlayout;
    endgraph;
  end;
run;
proc sgrender data=GTL_GS_bandGroup template=Fig_4_2_4_1;
   dynamic title=" of param 1";* of param &i"可以是一个宏变量,画多组图;
/*  dynamic title=;*/
run;
  • barchart
    barchart x=origin y=mpg_city/;
proc template;
  define statgraph Fig_4_3_1;
  begingraph;
    entrytitle 'Mileage by Origin and Type';
    layout overlay / xaxisopts=(display=(ticks tickvalues))
                      yaxisopts=(griddisplay=on);
    barchart x=origin y=mpg_city / group=type 
                                  stat=mean 
                                  groupdisplay=cluster
                                  dataskin=sheen
                                  barwidth=1 name='a';
    discretelegend 'a' / title='Type:' location=outside
                          valign=bottom halign=center;
    endlayout;
  endgraph;
  end;
run;
proc sgrender data=sashelp.cars
  template=Fig_4_3_1;
  where type not in ('Hybrid' 'Truck');
run;

stat: 统计方法:若指定response,则有参数FREQ(默认值)、PCT、PROPORTION;若未指定,则有SUM(默认值)、MEAN;
groupdisplay=/cluster:柱状图竖直/水平展示
dataskin=sheen:柱状图的皮肤
display=(label):默认放在右下角

  • boxplot
    orient=horizontal/ Vertical:水平/竖直放置
    groupdisplay=cluster
* 添加参考线;
  referenceline y=23 / curvelabel='MPG=23' curvelabellocation=inside;
  referenceline x=23 / curvelabel='x=23'curvelabellocation=inside;

dropline x=200 y=30 / label='(200,30)'
                  dropto=y
                  lineattrs=(pattern=dash);
  • discetelegend:图例相关参数 (具体相关参数见上一篇文章)
    discetelegend ‘name1’ ‘name2’ /options;
    name1、name2:是图例中要展示的图的名字
    sortorder=ASCENDINGFORMATTED/DESCENDINGFORMATTED:图例的排序按升序/降序排列
  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值