1

我正在使用 sgplot 和这样的by语句制作几个 png 图像:

ods html path="&graphPath" body="index.html"
    image_dpi=300 style=sciensano1 device=png;

ods graphics on / reset noborder imagename="boom"
    height=10cm width=16cm ;

title;footnote;
options byline;
proc sgplot data=sashelp.class;
    histogram height;
    by Sex;
    run;quit;

ods html close;

这将创建 1 个 html 文件 (index.html)
和 2 个 png 文件 (boom1.png & boom3.png)

我想知道是否可以根据 by 值命名 png 文件。与添加标题类似#byval

目前,数字会自动添加到imagenamefrom 中ods graphics,我想摆脱数字并改用 byval。

到目前为止,我唯一的解决方案是单独制作所有图形,在宏中使用 %do 循环,这样我可以参数化图像名并给它一个宏变量名。这样做的问题是实现起来要复杂得多,而且速度要慢得多。

编辑:使用 SAS 9.3

4

2 回答 2

1

SGPLOT HISTOGRAM在我的 SAS 9.4M4 中, options中没有这样的功能,ODS GRAPHICS IMAGENAMEor中也没有INDEX

理想情况下,未来的版本会看到 ODS 荣誉#BYVAL#BYVAR替代选项。

ods graphics / imagename="boom#byval1";       * not real;
ods graphics / imagename="boom#byval(sex)";   * not real;

或者

ods graphics / imagename="boom" reset=index(#byval1); * not real;

倒退:

GCHART过程语句,例如VBAR支持支持替换选项name=的选项。#BYVAL

vbar height / name="basename#byval1";  * creates gfx file whose name contains the by var value;
于 2019-05-13T15:58:55.717 回答
0

看起来这个功能在 v9.4M5 中——挖掘它:与 ODS 图形保持同步。

于 2019-06-21T20:39:24.450 回答