Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【   】SAS9.3模板制图学习笔记 (graph template language) - SAS专版 - 经管之家(原人大经济论坛) #93

Open
kemistep opened this issue Nov 6, 2020 · 0 comments
Labels

Comments

@kemistep
Copy link
Contributor

kemistep commented Nov 6, 2020

坚持每天写 1、2 页,慢慢积累。虽然,某一天当我熟练掌握 SAS,或许就是我不再需要使用 SAS 的时候。。。

     

  1. proc template;                        
  2.         define statgraph scatterplot;               
  3.         begingraph;                 
  4.         entrytitle "Weight and Age by Sex";                 
  5.         layout overlay;               
  6.                 scatterplot x=age y=weight /         
  7.                         group=sex name="abc";
  8.                         discretelegend "abc";
  9.         endlayout;               
  10.         endgraph;               
  11.         end;               
  12. run;                        
  13. ods html;                        
  14. proc sgrender data=sashelp.class template=scatterplot;                        
  15. run;

复制代码

  1. proc template;                        
  2.         define statgraph scatterplot;               
  3.         begingraph;
  4.         entrytitle "Weight and Age by Sex";
  5.         entrytitle halign=left "Weight and Age by Sex"
  6.                                 / border=true
  7.                                 opaque=true
  8.                                 backgroundcolor=lightgreen
  9.                                 textattrs=(color=blue
  10.                                                         family='Arial'
  11.                                                         size=14
  12.                                                         style=italic
  13.                                                         weight=bold);
  14.     entryfootnote halign=center 'SMOON Confidential'
  15.                               halign=right "MIB";
  16.         layout overlay;               
  17.                 scatterplot x=age y=weight /         
  18.                         group=sex name="abc";
  19.                         discretelegend "abc";
  20.         endlayout;               
  21.         endgraph;               
  22.         end;               
  23. run;                        
  24. ods html;                        
  25. proc sgrender data=sashelp.class template=scatterplot;                        
  26. run;

复制代码

————————————————————————————————————————————————————————————

从图形可以看到,设置 backgroundcolor=lightblue 后,背景颜色变成淡蓝色了;设置 border=true 和 borderattrs=(color=pink thickness=3) 后,边框变成粉红色并且加粗了;设置 designwidth=400px 和 designheight=400px 后,图表大小改变并且变成正方形了;设置 pad=(bottom=50 right=50) 后,下边和右边空白区域变大了。  
proc template;                        
        define statgraph scatterplot;               
        begingraph / backgroundcolor=lightblue
**                            border=true**
**                            borderattrs=(color=pink thickness=3)**
**                            designwidth=400px**
**                            designheight=400px**
**                            pad=(bottom=50 right=50)**;                 
        entrytitle "Weight and Age by Sex";                 
        layout overlay;               
                scatterplot x=age y=weight /         
                        group=sex name="weight";
                        discretelegend "weight";
        endlayout;               
        endgraph;               
        end;               
run;
ods html;                        
proc sgrender data=sashelp.class template=scatterplot;                        
run;

————————————————————————————————————————————————————————————

对比上下 2 个图形,可以看到设置 aspecratio=0.7 后,绘图区域形状变了;设置 cycleattrs=true 后,图形颜色从 2 种颜色变成 4 种颜色。
proc template;
define statgraph seriesplot;
        begingraph / designwidth=360px designheight=260px;
        entrytitle "Tech Stock Trends";
        layout overlay / yaxisopts=(label='price')
**                                aspectratio=0.7**
**                                cycleattrs=true**;
                seriesplot x=date y=close / group=stock name="stocks"
                        lineattrs=(thickness=3);
                seriesplot x=date y=high / group=stock
                        lineattrs=(thickness=3);
                discretelegend "stocks";
        endlayout;        
        endgraph;
        end;
run;
proc sgrender data=sashelp.stocks template=seriesplot;
  where date > "31dec1999"d and stock^='IBM';
run;

————————————————————————————————————————————————————————————

对比上下 2 个图形,可以看到设置 opaque=true 和 backgroundcolor=lightyellow 后,布局背景颜色变成淡黄色;设置 border=true 和 borderattrs=(color=blue pattern=dash thickness=2) 后,布局区域显示边框,并且边框属性为蓝色、破折线、加粗;设置 pad=(top=50) 后,布局上方和图表距离变大了;设置 wallcolor=lightgray 和 walldisplay=(fill) 后,绘图区域背景颜色变成淡灰色。
proc template;
define statgraph seriesplot;
        begingraph / designwidth=360px designheight=260px;
        entrytitle "Tech Stock Trends";
        layout overlay / yaxisopts=(label='price')
                                aspectratio=auto
**                                backgroundcolor=lightyellow**
**                                border=true**
**                                borderattrs=(color=blue pattern=dash thickness=2)  **
**                                cycleattrs=true**
**                                opaque=true**
**                                pad=(top=50)**
**                                wallcolor=lightgray**
**                                walldisplay=(fill)**;         
                seriesplot x=date y=close / group=stock name="stocks"
                        lineattrs=(thickness=3);
                seriesplot x=date y=high / group=stock
                        lineattrs=(thickness=3);
                discretelegend "stocks";
        endlayout;        
        endgraph;
        end;
run;
proc sgrender data=sashelp.stocks template=seriesplot;
  where date > "31dec1999"d and stock^='IBM';
run;

————————————————————————————————————————————————————————————


从图形对比左右 Y 轴,可以看到设置 display=(label tickvalues) 后,轴线和标记不显示了;设置 griddisplay=on 后,显示刻度线;设置 label="population (%)" 和 labelattrs=(color=blue weight=bold) 后,标签属性变成蓝色加粗;设置 xaxisopts=(display=none) 后,X 轴不显示了。
proc template;
        define statgraph y2axis;
        begingraph / designwidth=360px designheight=360px;
        layout overlay / walldisplay=none
                                yaxisopts=(display=(label tickvalues)
**                                                    griddisplay=on**
**                                                    label="population (%)"**
**                                                    labelattrs=(color=blue weight=bold)**
**                                                    name="Y")**
**                                xaxisopts=(display=none)**;
                histogram height / scale=count yaxis=y2 name="height";
                histogram height / scale=proportion yaxis=y;
                densityplot height / normal();
                discretelegend "height";
        endlayout;
        endgraph;
        end;
run;
proc sgrender data=sashelp.class template=y2axis;
run;


https://bbs.pinggu.org/thread-2177218-1-1.html

@kemistep kemistep added the sas label Nov 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant