2024-06-05 初级SAS学习笔记15(ODS GRAPH)

1.创建拟合曲线         

        可以利用PROC SGPLOT来绘制拟合曲线,常用的拟合曲线有线性回归线、非参拟合线(loess smooth)、B-样条曲线(penalized B-spline曲线).常用的基本命令是:

        proc sgplot ;

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

    statement 有如下三个:reg \loess\pbspline,对应上述的三种拟合曲线

常用的选项有:

alpha=n                          设置置信限,取值0-1.默认0.05(即95%置信区间)

CLI                                  计算个体预测值的置信区间,只适用于REG和PBSPLINE

CLM                                计算均值预测值的置信区间

curvelabel="text-string"   为曲线加标签,如果不设置“text-string”,SAS默认使用Y变量的标签

group=variable-name      为每一个组别计算单独的拟合曲线

NOLEGCLI                      不为个体预测值置信区间产生图例(CLI BAND)

NOLEGCLM                    不为均值预测值置信区间产生图例(CLM BAND)

NOLEGFIT                      不为拟合曲线产生图例

NOMARKERS                 不为数据点添加标识

CLMTRANSPARENCY    为置信区间条带设置透明度,取值为0-1,0表示完全不透名,1-表示完全透明

2.自定义坐标轴       

        除了使用proc sgplot绘制图形外,还可以在proc sgplot中定义坐标轴或者参考线;定义坐标轴的命令如下:

        proc sgplot;

                xaxis options;(xaxis适用横轴,yaxis适用纵轴)

常用options

        grid                                        在每个刻度上绘制一条线

        label="text-string"                  为坐标轴加上标签,该语句定义的标签优先级最高,可以覆盖其他形式定义的标签,如果变量没有标签将会使用变量名当做坐标轴标签

        type=                                      定义坐标轴形式,discrete默认是字符变量坐标轴刻度形式,linear默认是数值变量坐标轴刻度形式,time默认是日期或时间格式坐标轴刻度形式,log表示坐标轴刻度为对数形式

        value =(value list)               用于标记坐标轴刻度,必须用括号括起来,形式如下:(0 5 10  15 20) 或者(0 to 20 by 5)

        

3.创建参考线

        增加纵向或横向参考线的命令如下:

        proc  sgplot ;

                refline value/options;

        value 是将要划参考线的点值,可以0 5 10  15 20 或者0 to 20 by 5的形式,

常用选项options是:

        axis=X/Y                表示有参考线的坐标轴,默认是AXIS=Y表示Y坐标轴有横向参考线

        labe=(label-list)      为参考线加标签,用空格隔开

        transparency=n      设置参考线的透明图,0-1,0-表示完全不透明,1-表示完全透明

还可以使用LINEPARM语句来绘制带斜率的参考线

举例如下:

        proc sgplot data=cities;

                series x=month y=intfalls;

                series x=month y=raleigh;

                series x=month y=yuma;(每增加一个语句则是新增一个图层)

                refline 32 75 /label=("32 degree" "75 degree") transparency=0.5;

                xaxis type=discrete;(刻度轴是相互独立)

                yaxis label="Average High Temperature(F)";

                title "Temperature for International Falls,Raleigh,and Yuma";

        run;

结果如下;

4.设置图例

        proc sgplot和proc sgpanel会自动创建图例,以下是手动修改已创建图例的命令:

        proc sgplot   ;

                keylegend /options;

常见选项options如下:

        across=n   设置图例的列数;

        down=n     设置图例的行数;

        location= value   设置图例的位置,取值inside表示坐标轴内,取值outside表示坐标轴外,默认取值outside

        noborder     表示图例不加边框

        position=value    设置图例具体位置,取值TOP,TOPLEFT,TOPRIGHT,BOTTOM(默认),BOTTOMLEFT,BOTTOMRIGHT,LEFT,RIGHT

在proc sgplot 加上noautolegend则表示不自动生成图例,如 proc  sgplot noautolegend;当同时存在keylegend和noautolegend,SAS会自动忽略后者;

可以在keylegend 后面加上“name-1”,"name-2" 来对多个图形的图例进行修改。

5.插入字符

        还可以在坐标轴内插入文字,   基本形式如下:

                inset "text-string-1" "text-string-2" "text-string-3"  ......./options;

        如果插入多个字符,则会把新的文字放于旧的文字下面

常见options选项如下:

        BORDER                     为文字加上边框

        POSTION=value         设置插入文章的位置,取值有TOP,TOPRIGHT,TOPBOTTOM,BOTTOM(默认),BOTTOMLEFT,BOTTOMRIGHT,LEFT和RIGHT

举例如下:

        proc sgplot  data=olympic1500;

                scatter x=Year y=OlympicTime;

                series x=Year y=WorldRecord;

                keylegend /location=inside postion=topright;

                inset "Olympics not held in " "1940 and 1944" /position=bottomleft;

                yaxis label="Time in Seconds";

                title "Times for men's 1500 Meter Run";

        run;

结果如下:

    6.修改图形样式

         基本格式如下:proc sgplot;

                                        scatter x=score y=hour/makerattrs=(symbol=star);

斜杠后内的图形修饰选项对该图形进行修改,常用的选项如下:

        fillattrs=(attribute=value)         设置图形填充区域颜色,使用形式:fillattrs=(color=);

        labelattrs=(attribute=value)     设置坐标轴标签形式,attribute包括color=,size=,style=,weight=;

        lineattrs=(attribute=value)        设置线条形式,attribute包括color=,patter=,thickness=,

        markerattrs=(attribute=value)   设置数据点标记形式,attribute包括color=,size=,symbol=,

        valueattrs=(attribute=value)      设置坐标值刻度值形式,attribute包括color,size=,style=weight=.  

attribute的常用取值如下:

        color=                        RGB三元色(#FF00000)形式或red等

        pattern=                     线条形式:solid,dash,shortdash,longdash,dot,dashdashdot,dashdotdot

        size=                          大小,单位有:cm,in,mm,pct,pt,px(默认px)

        style=                         字体形式,normal或者italic,(默认normal)

        symbol=                     数据点标记有circle,circlefilled,diamond,diamondfilled,plus,square,squarefilled,star,starfilled,triangle,trianglefilled

        thickness=                  线条宽度,单位有cm,in,mm,pct,pt,px(默认px)

        weight=                      字体加粗bold或者normal 

举例如下:

        proc sgplot data=Olympic1500;

                scatter  x=Year y=OlympicTime/markerattrs=(symbol=circlefilled size=2mm);

                series x=Year y=WorldRecord/lineattrs=(thickness=2mm) transparency=0.75;

                xaxis   labelattrs=(weight=bold)

                yaxis  labelattrs=(weight=bold) label="Time in Seconds";

                title bold "Times for men's 1500 meter run";

        run;

结果如下:

        

7.同时创建多个图形

          proc  sgpanel与proc sgplot类似,每增加一个语句创建一个新的图层,可以创建几乎proc  sgplot 创建的所有图形样式,但是proc sgplot 一次只能创建一张图形,proc sgpanel一次可以基于设定的分类变量取值创建多张图形。

        基本格式如下:

        proc sgpanel;

                panel by variable-list /options;(设置图形的分类变量)

                plot statement;

常用的选项options有:

        columns=n                       设置多个图形的列数

        missing                             当分类变量存在缺失值的时候缺失值作为单独的组别显示,不删除

        novarname                       在每张图标题上删除变量名

        rows=n                              设置每张图形的行数

        spacing=n                          设置单张图形行和列的像素值(px),默认是0;

        uniscale=value                   设置哪个坐标轴在各个图片间保持一致,取值column,row,和all

                                                   默认是all

相比于PROC SGPLOT 使用xaxis和yaxis来控制坐标轴,PROC SGPANEL使用COLAXIS和ROWAXIS来控制坐标轴。

举例如下:

        proc format;

                value $birdtype

                        "S"="songbirds"

                        "R"="Raptors";

        run;

        proc sgpanel data=wings;

                panel type /novarname spacing=5;

                scatter x=wingspan y=length;

                format type $birdtype;

                title "Comparison of Wingspan vs.Length";

        run;

结果如下:

值得注意的是如果同时创建多个不同坐标轴的图形,可以使用proc  sgscatter步来实现。

8.设置图形属性

        基本格式如下:ods  graphics/options;

常见的options选项如下:

HEIGHT=N                            设置图形高度,单位有cm,in,pct,pt,px,mm

IMAGENAME="filename"      设置图形名称,每跑一次SAS会在名称后加数值,以避免覆盖上一个图形,如果想覆盖上一个图形,可以加reset 

OUTPUTFMT=file-type          设置图形格式,取值有BMP,GIF,JPEG,PDF,PNG,PS,SVG,TIFF等

RESET                                   重置为默认格式

WIDTH=N                               设置图形宽度,单位有cm,in,pct,px,mm

默认的图形是640px宽,480px高,如果只单独设置宽度或高度,SAS会自动调整另一个维度以维持图形4:3的比例。       

9.保存图形

        当使用ODS保存图形的时候,如果输出的格式是HTML和listing则图形会单独保存至文件中,如果输出格式是PDF或RTF时,图形会和表格一起输出至同一个文件内

基本格式如下:ODS destination-name options;

常见的选项有:

        file="path/file-name"        设置输出至PDF或者RTF文件名,图形会和表格一起输出

        graph="path"                   设置输出至LISTING和HTML的地址,图形将会单独保存至该文件夹

        dpi=n                                设置输出至PDF的清晰度,默认是200

        image_dpi                         设置输出至html,listng,RTF的清晰度,默认100

        style=style-name               设置输出的模式样版

值得注意的是如果只需要单独保存图形,那么listing是一个很好的格式,因为拥有很丰富图形设置,基本命令如下:

ods listing path="c:\mylib"  image_dpi=300 style=statistical;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值