我正在尝试在 for 循环中使用 PROC SGRENDER 生成绘图。在作业执行中运行代码时,我遇到黑框而不是绘图。当我将作业提交中的链接复制到浏览器中时,我收到相同的输出。
这些图旨在显示在不需要选择参数的应用程序中。我正在使用 SAS Viya 3.5
filename cd ".";
ods select all;
ods preferences;
ods html5 options(svg_mode="inline");
ods graphics /outputfmt=svg;
ods html5 (id=web) style=daisy path=cd
file='test';
%macro CreatePlots;
%local model i;
%do i=1 %to %sysfunc(countw(&modelid_list.,%str( )));
%LET model = %scan(&modelid_list., &i.,%str( ));
%put &=model;
PROC SQL NOPRINT;
SELECT distinct Name into :ShortName
FROM PlotData WHERE modelID=&model.;
QUIT;
PROC TEMPLATE;
DEFINE STATGRAPH ArrowPlot;
BEGINGRAPH ;
ENTRYTITLE "Model: &ShortName. ";
LAYOUT OVERLAY / WALLDISPLAY=(FILL) XAXISOPTS=(DISPLAY=NONE
LINEAROPTS=(VIEWMIN=-0.05 VIEWMAX=1.05)) YAXISOPTS=(DISPLAY=NONE LINEAROPTS=(VIEWMIN=-0.6 VIEWMAX=3));
POLYGONPLOT X=x Y=y ID=Id / COLORRESPONSE=Sign COLORMODEL=(lightblue Pink)
DISPLAY=(OUTLINE FILL) OUTLINEATTRS=(COLOR=white /*white on regular screen*/ THICKNESS=2px);
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA=PlotData(where=(modelID=&model.)) TEMPLATE=ArrowPlot;
RUN;
%end;
%mend CreatePlots;
%CreatePlots;
ods html5 close;
ods listing
在浏览器中,如果我选择“另存为”(HTML) 此输出并在浏览器中再次打开保存的文件,我将获得包含所有绘图的正确输出。
我在 Viya LTS 2024.03 中也遇到同样的问题。 SVG 图片在 SASStudio 和 SASJobExecution 中显示为黑框。
在分析 html 时,我可以看到图片包含更多元素,而不仅仅是一个大的黑色方块(条形、轴等)。但所有元素(包括背景)都是黑色的,所以它看起来只是一个大的黑色方块。