2024-06-04 初级SAS学习笔记14(ODS GRAPH)

        在windows和linux操作系统,ODS graphics默认打开的,在批量模式或者其他操作系统下ODS graphics默认是关闭的,可以使用ODS GRAPHICS ON 来打开,则SAS 在proc 步进行数据分析时会输出相应的图形,如果不想SAS 输出图形,可以使用ODS GRAPHICS OFF来关闭。

        在SAS中可以使用PROC SGPLOT来创建单张图,或者使用PROC SGPANEL基于分类变量来创建多张图,图形分类如下:

            类型                             图形形式

        X Y 图形,                  band,bubble,ellipse,high-low,loess,needle,penalized B                     

                                            spline,regression,scatter,series,and vector

        连续变量分布图           box,density,histogram

        分类变量分布图           dot,bar,line

同样如表格输出,图形输出也可以使用style template(格式模板)来定义输出的图形形式,使用方式如下:

        ODS LISTING STYLE=JOURNAL (该格式模板只运用于图形,表格输出依然保持文本形式);

值得注意的是我们需要把ODS graphice和SAS /GRAPH模块相区分,后者是需要单独购买的模块,输出图形更多样且更复杂;而前者绑定在SAS/BASE模块中   。

1. 绘制条状图,程序如下:

        proc sgplot  ;

                vbar variable-name/options ;(vbar 是纵向条状图,hbar是横向条状图)

常用选项options 如下:

        alpha =n                定义置信限(默认是0.05,即95%置信区间)

        barwidth=n            定义条带的宽度,宽度从0.1-1;默认是0.8;

        datalabel=variable-name   给每个条带加标签,如果设置了variable-name,则把标签为该变量的值,如果未设置则为自身变量值

        discreteoffset=n     将图形从中心位置偏移,取值是-0.5到0.5,取值为正向右偏移或向下偏移,取值为负向左偏移或向上偏移;

        limitstat=clm/stddev/stderr     为条带设置上下限,不能与GROUP=选项合用,且必须与RESPONSE=和 STAT=MEAN选项合用后才能生效。

        missing                                 为缺失值单独设置一条条带

        group=variable-name            分组画图

        groupdisplay=cluster/stack    分组后的条带如何集中展示,堆嵌或者集中

        response=variable-name       需要计算统计量的变量

        stat=freq/mean/sum               在没有response变量的下默认计算频数,如果有response变量默认求和

        transparency=n                      设置条带的透明度,在0-1之间,0是完全不透明,1完全透明。                               

          

2.创建直方图和密度曲线,基本格式如下:

        proc sgplot ;

                histogram variable-name/options;

     常用options选项如下:

        binstart = n                               设置第一个箱子(bin)的中心

        binwidth=n                                设置箱子的宽度,其单位是横轴单位,如果存在NBINS=选项,则该选项自动忽略

        nbins=n                                     设置箱子个数

        scale=percent/count/proportion 设置纵轴显示尺度

        showbins                                    在箱子中心点显示刻度轴 ,默认是根据最小值和最大值常规显示

         transparency=n                          含义同上

创建密度曲线基本格式如下:

        proc  sgplot;

                density variable-name/options;

常用options选项如下:

        type=normal/kernel                         设置曲线形式,默认是normal

        transparency=n                               设置透明度,含义同上

histogram和density语句可以同时使用但是不可以与其他绘制图形语句同时使用,值得注意的是多个绘图语句可以同时合用,但是用在后面的语句会在前面绘制好的图形上新增一个图层,需要避免后用的图层遮盖前面绘制的图层。

举例如下:

        proc sgplot data=contest;

                histogram numberbooks /binwidth=2 showbins scale=count;

                density numberbooks/type=normal;

                density numberbooks/type=kernel;

                title "reading contest";

        run;

结果如下:

3.创建box-whisker图形(箱线图)

        连续数据还可以使用box-whisker来查看数据分布,箱线图示意如下:

         上限=q3+w*(q3-q1),下限=q1-w*(q3-q1),在范围外的值将标注离群值,默认的w值为1.5。

创建箱线图的基本命令如下:

        proc sgplot ;

                vbox variable-name/options;(hbox表示横向箱线图,vbox表示纵向箱线图)

常用options选项如下:

        category=variable-name                设置一个分类变量,一个分类值一个箱式图

        extreme                                          设置whiskers应该极大以至上下限为真实的最大值和最小值,没有离群值

        group=variable-name                     在第一个分类变量上再划分第二个分类变量,每个分类变量一个箱式图

        missing                                            将分类变量的缺失值看成一个组别来绘制箱式图

        transparency=n                                透明度,含义同上

   

举例如下:

        proc  sgplot  data=bikerace;

                vbox numberlaps/category=division;

                title "Bicycle Criterium Results by Division"    

        run;

                             

4.创建散点图,基本格式如下:

        proc sgplot ;

                scatter  x=horizontal-variable y=vertical-variable /options;

  常见options如下:

        datalabel=variable-name             给每个点加标签,如果设置variable-name 则标签为该变量值,如果未设置variable-name,则标签为Y变量值

        group=variable                             将观测点值按group设定的值汇总标识

        nomissinggroup                            如果group含有缺失值则缺失值对应的观测点不显示 

        transparency=n                             透明度,0-1,0表示完全不透明,1表示完全透明

5.创建折线图,基本格式如下:

        proc sgplot ;        

                series x=horizontal-variable y=vertical-variable /options;

  常见options如下:

        curvelabel="text-string"                  设置曲线标签,如果没有设置text-string,则默认使用y轴标签

        datalabel=variable-name                 为每个观测点加标签,如果设置了variable-name,则使用该变量值,如果未设置variable-name,则使用因变量值

        group=variable-name                       将观测点按group值汇总起来,每个组别一条折线

        makers                                              在折线外,标记每个数据点,

        nomissinggroup                                 如果group=variable-name里面的变量值有缺失,则缺失值对应的观测点未不显示

        transparency=n                                  透明度,取值0-1,0表示完全不透明,1-表示完全透明

值得注意的是SAS连接这些点的起始顺序是它们在SAS里面的出现的顺序,所以根据需求必要时提前按照相应变量排序。

举例如下:

        proc sgplot  data=electricity;

                series x=Time  y=kwh /markers;

                title "Hourly Use of Electricity";

        run;

        

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值