SAS:您可以保存SAS生成的折线图的输入表吗?

时间:2019-04-09 11:05:17

标签: plot sas histogram sas-studio sgplot

因此,我正在SAS中使用如下数据集生成SAS折线图:

id date default var1 log_var1 square_var1 ... cubic_var1
1  1    1        5    -3.3     0.9             1.2
1  2    0        15   -9.9     2.7             3.6
2  1    1        10   -6.6     1.8             2.4
...

请注意,转换不是

log(var1) 

但实际上是回归的转化

log_var1 = alpha + beta log(var1)

现在,我使用SAS任务为条形图生成的以下代码:

SYMBOL1
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2
    CI=WHITE

    CV = _STYLE_
;
SYMBOL2
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
SYMBOL3
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
SYMBOL4
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
SYMBOL5
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2

    CV = _STYLE_
;
SYMBOL6
    INTERPOL=JOIN

    HEIGHT=10pt
    VALUE=SQUARE
    LINE=1
    WIDTH=2
    CI=WHITE

    CV = _STYLE_
;
Legend2
    FRAME
    ;
Legend1
    FRAME
    ;
Axis1
    STYLE=1
    WIDTH=1
    MINOR=NONE


;
Axis2
    STYLE=1
    WIDTH=1


;
Axis3
    STYLE=1
    WIDTH=1
    MINOR=NONE


 ;
TITLE;
TITLE1 "Bar-Line Chart";
FOOTNOTE;
FOOTNOTE1 "Generated by the SAS System (&_SASSERVERNAME, &SYSSCPL) on %TRIM(%QSYSFUNC(DATE(), NLDATE20.)) at %TRIM(%SYSFUNC(TIME(), TIMEAMPM12.))";
PROC GBARLINE DATA=WORK.SORTTempTableSorted
;
    BAR  var1
 /
FRAME   LEVELS=25
    COUTLINE=BLACK
    RAXIS=AXIS1
    MAXIS=AXIS2
    LEGEND=LEGEND2
;
    PLOT / SUMVAR=default
    TYPE=MEAN
    AXIS=AXIS3
    LEGEND=LEGEND1
;
    PLOT / SUMVAR=lin_var1
    TYPE=MEAN
    AXIS=AXIS3
;
    PLOT / SUMVAR=sigmoid_var1
    TYPE=MEAN
    AXIS=AXIS3
;
    PLOT / SUMVAR=square_var1
    TYPE=MEAN
    AXIS=AXIS3
;
    PLOT / SUMVAR=cubic_var1
    TYPE=MEAN
    AXIS=AXIS3
;
    PLOT / SUMVAR=log_var1
    TYPE=MEAN
    AXIS=AXIS3
;

/* -------------------------------------------------------------------
   End of task code
   ------------------------------------------------------------------- */
RUN; QUIT;
%_eg_conditional_dropds(WORK.SORTTempTableSorted);
TITLE; FOOTNOTE;
GOPTIONS RESET = SYMBOL;

我的问题是:

我可以以某种方式存储或保存输入以创建此直方图吗? 即包含默认值平均值的表格, var1,square_var1,cubic_var1用于25个等距的垃圾箱?

这样做的前提是所有输入都在不同的比例上,所以我想对输入进行标准化,然后绘制图形

注意:我可以花些时间自己编写合并代码,但这确实是一个懒惰的程序员的把戏!

1 个答案:

答案 0 :(得分:1)

GBARLINE过程中没有用于输出其计算出的绘图参数的选项。您的默认图形选项可能会为用于显示图表以供查看的html页面创建png图像。

将图形设备更改为svg,ODS将创建html源,其中包含用于创建可见图像的绘图指令。这些说明将在<g>标签中。因此,如果您真的很想变得懒惰,而不是手工编写中点和轴值,则可以编写代码以解析html并从<g>标记中抓取计算出的中点和轴刻度。

ods html5 file="c:\temp\gbarline.html";

goptions reset=all;
goptions device=svg;

… gbarline … 

ods html5 close;

… parse the ODS created c:\temp\gbarline.html …