在 SAS 9.3 中,我可以使用 ODS HTML GPATH
来指定我想要保存图形的路径(如果我愿意的话)。在 9.4 中,默认情况下(即每次打开 SAS 时),每当我制作图表(例如,使用 PROC SGPLOT
)时,它都会自动将绘图保存到保存 SAS 程序的位置。我试过去工具 --> 选项 --> 首选项 --> 结果 并取消选中 HTML 和 ODS 选项的每个组合,但无论如何我仍然会自动保存图表。我怎样才能关闭它?最好我仍然有 ODS 输出 在 SAS 中,但我不希望这些 PNG(或其他)图像自动保存到我在 SAS 之外的计算机中。
编辑:更多信息,因为上述差异尚不清楚。
1) 在 9.3 中,我 不得不 说 ODS GRAPHICS ON
并指定 ODS HTML GPATH
以便让 SAS 将我的绘图保存到我的SAS之外的计算机(或者我认为)。如果我想要 SAS 内部的 ODS 图形,但不保存 SAS 外部的图形,我可以说 ODS GRAPHICS ON
并跳过 ODS HTML GPATH
语句。
2) 当我打开 9.4 并且不做任何关于 ODS
的声明(即保留默认设置),而是运行诸如 SGPLOT
之类的过程时,我 A) 获得一个 html 图表(显示在 SAS 的“结果”窗口中的 ODS 图表)和一个我可以双击以在 Windows 照片查看器中打开的图表,B ) 该图另外并自动保存在我的 SAS 程序所在的位置作为 PNG。
为了停止这种自动图形保存,我在运行 PROC SGPLOT
之前在 SAS 9.4 中尝试了以下操作:
1) ODS GRAPHICS OFF
:没有任何变化。我仍然得到上面第 (2) 点中列出的所有内容。
2) ODS HTML CLOSE
(ODS GRAPHICS ON
):在 SAS 中丢失 html/ODS 版本的图形,但在 SAS 中仍有图形我可以双击在 Windows 照片查看器中打开,但图形仍会自动保存到我的 SAS 程序的位置。
3) ODS GRAPHICS OFF
和 ODS HTML CLOSE
:与前面的情况相同((2) 直接在上面)。
我想要的(我觉得这就是 9.3 中的情况)是的,有 ODS 图出现在 SAS 中(真的不需要你可以双击的版本在 Windows 照片查看器中打开),但不,不要让 SAS 将 PNG 保存到我的计算机(特别是我的 SAS 程序的位置)。
最佳答案
首先,关于您尝试过的内容的一些说明。
ODS GRAPHICS
on/off 不会对 SGPLOT
或任何 SG
程序产生任何实际影响;无论如何,它们都是 ODS GRAPHICS
。它所影响的是 PROC UNIVARIATE
和具有两种类型图形的类似程序 - 旧式图形和 ODS GRAPHICS
。 ODS GRAPHICS ON
告诉他们使用 ODS GRAPHICS
,OFF
告诉他们使用旧方法。
ODS HTML CLOSE
将告诉 SAS 不要生成 HTML 输出,但只要您打开另一个目标 (ODS LISTING
?) 它仍会生成图形到GRAPH
目的地。此外,它仍然使用 ODS HTML CLOSE
生成图形(与注释“没有事件的输出目标”和没有输出相反)告诉我你仍然有一个打开的目标(再次,可能 list
)。因此,ODS HTML GPATH
不一定能解决您的问题(因为它只会影响 HTML 输出的去向)。您需要为每个打开的目标设置 GPATH
(可以是 LISTING
、HTML
或两者,取决于您的首选项中的复选框)。
解决办法: 由于您希望它消失,因此最好的办法是将其放在您的工作目录中(当 SAS 正确关闭时,该目录由 SAS 清理)。
ods listing gpath="%sysfunc(getoption(work))";
proc sgplot data=sashelp.class;
vbar sex;
run;
请注意,已创建 .png 文件(一如既往),但现在它们进入工作目录(您可以像浏览子库一样浏览并查看其中的每个文件)。
您可以将初始行放在 autoexec.sas
文件中,并告诉 SAS 在 SAS 启动时运行该文件(命令行上的 -AUTOEXEC 选项)。
您也可以在 tools->preferences->Results 中取消选中 Listing
,和/或使用 ODS LISTING CLOSE;
,这些文件不应出现。
关于sas - 在 SAS 9.4 中关闭自动图形保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21208680/