菜鸟科技网

SAS作图命令有哪些常用语法与参数?

SAS(Statistical Analysis System)作为一款功能强大的统计分析软件,其作图命令(主要通过GRAPH模块和ODS图形系统实现)能够满足从基础统计图表到高级可视化分析的需求,掌握SAS作图命令的核心语法与参数配置,是高效输出专业图形的关键,以下从基础命令、高级定制及常用图表类型三个维度展开说明。

SAS作图命令有哪些常用语法与参数?-图1
(图片来源网络,侵删)

SAS作图基础命令与流程

SAS作图主要通过PROC SG系列过程(如SGPLOT、SGSCATTER、SGRENDER等)和传统PROC GPLOT实现,其中SG系列过程基于ODS(Output Delivery System)输出,语法更简洁且支持现代图形样式,基础作图流程通常包括:

  1. 启用ODS输出:通过ODS GRAPHICS ON语句设置图形输出环境(如尺寸、分辨率);
  2. 调用过程步:选择对应的过程步并指定数据集;
  3. 绘图语句:如XAXISYAXIS定义坐标轴,SERIES绘制折线,SCATTER绘制散点等;
  4. 输出图形:通过ODS GRAPHICS OFF关闭图形输出,并指定输出格式(如PNG、PDF)。

使用PROC SGPLOT绘制简单散点图的基本代码如下:

ods graphics on / width=640px height=480px imagename="scatter_plot";
proc sgplot data=sashelp.class;
    scatter x=height y=weight / markerattrs=(symbol=circle size=10px color=blue);
    xaxis label="身高(英寸)" grid;
    yaxis label="体重(磅)" grid;
run;
ods graphics off;

常用图表类型及对应命令

基础统计图表

  • 散点图与折线图SCATTER语句搭配SERIES语句可展示变量间趋势,在PROC SGPLOT中同时绘制散点和拟合直线:
    proc sgplot data=sashelp.class;
        scatter x=height y=weight;
        reg x=height y=weight / lineattrs=(color=red thickness=2);
    run;
  • 柱状图与条形图VBAR(垂直柱状图)或HBAR(水平条形图)语句用于分类数据统计,按性别统计平均身高:
    proc sgplot data=sashelp.class;
        vbar sex / response=height stat=mean datalabel;
        xaxis label="性别";
        yaxis label="平均身高(英寸)";
    run;
  • 直方图与密度图HISTOGRAM语句绘制直方图,DENSITY语句叠加密度曲线,适用于数据分布分析:
    proc sgplot data=sashelp.class;
        histogram weight / scale=count binwidth=10;
        density weight / type=kernel lineattrs=(color=green);
    run;

高级可视化图表

  • 箱线图BOXCHARTVBHBOX语句展示数据分布与异常值,支持分组(如按性别分组):
    proc sgpanel data=sashelp.class;
        panelby sex / layout=columns 2;
        vbox height / category=sex;
    run;
  • 散点图矩阵PROC SGSCATTERMATRIX语句可快速展示多变量两两关系:
    proc sgscatter data=sashelp.class;
        matrix height weight age / diagonal=(histogram normal);
    run;
  • 时间序列图SERIES语句结合XAXIStype=time参数处理时间数据,
    data time_data;
        input date:date9. value;
        format date date9.;
    cards;
    01JAN2023 10
    02JAN2023 12
    03JAN2023 15
    ;
    run;
    proc sgplot data=time_data;
        series x=date y=value / lineattrs=(color=blue);
        xaxis type=time label="日期" interval=day;
    run;

图形定制与美化参数

SAS作图支持丰富的定制选项,通过语句参数调整图形细节:

  • 颜色与样式color指定颜色(如color=cyan),markerattrs设置散点样式(如symbol=star size=8px);
  • 坐标轴与标题XAXIS/YAXISlabelgridvalues等参数调整坐标轴属性,TITLE/FOOTNOTE添加全局标题;
  • 图例与注释LEGEND语句控制图例位置(如position=topright),INSET添加文本注释框。

通过以下代码增强柱状图的可读性:

SAS作图命令有哪些常用语法与参数?-图2
(图片来源网络,侵删)
proc sgplot data=sashelp.class;
    vbar sex / response=weight stat=sum datalabel datalabelattrs=(size=12px)
               fillattrs=(color=lightblue) transparency=0.3;
    xaxis label="性别" valueattrs=(size=11px);
    yaxis label="体重总和(磅)" valueattrs=(size=11px) grid;"不同性别体重总和对比" textattrs=(size=14px weight=bold);
    keylegend / position=top title="性别分布";
run;

图形输出与格式控制

通过ODS GRAPHICS的全局语句可统一控制图形输出格式,

  • ODS GRAPHICS ON / width=800px height=600px imagefmt=png:设置输出尺寸为800×600像素,格式为PNG;
  • ODS LISTING CLOSE; ODS PDF FILE="report.pdf";:将图形输出至PDF文件,避免在输出窗口显示。

相关问答FAQs

Q1:如何在SAS图形中添加参考线(如均值线)?
A:在PROC SGPLOT中,使用REFLINE语句可添加参考线,为散点图添加Y轴的均值参考线:

proc sgplot data=sashelp.class;
    scatter x=height y=weight;
    refline 100 / axis=y label="参考值(100)" lineattrs=(color=red pattern=dash);
run;

Q2:如何将多个子图合并为一张复合图?
A:可通过PROC SGRENDER结合GRAPH模板语言(GTL)实现,或使用PROC SGSCATTERMATRIX语句绘制散点图矩阵,更简单的方式是PROC SGPANELPANELBY语句,例如按性别分面绘制多组箱线图:

proc sgpanel data=sashelp.class;
    panelby sex / columns=2 novarname;
    vbox height / category=age;
    colaxis label="年龄";
    rowaxis label="身高";
run;
SAS作图命令有哪些常用语法与参数?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇