QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2161|回复: 0
打印 上一主题 下一主题

[建模教程] SAS绘图命令(让你快速入手)

[复制链接]
字体大小: 正常 放大

453

主题

24

听众

4331

积分

  • TA的每日心情
    奋斗
    2016-9-9 07:08
  • 签到天数: 157 天

    [LV.7]常住居民III

    国际赛参赛者

    自我介绍
    建模爱好者

    社区QQ达人 新人进步奖 发帖功臣

    群组2015SAS数据分析大赛

    群组西京学院数学建模协会

    跳转到指定楼层
    1#
    发表于 2015-10-7 21:05 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta

    SAS/Graph非常强大,本文主要讲一些常用且功能强大的Graph相关的过程步。


    + s: f1 t$ m& |5 N

    一.proc gplot命令


    : ~  |" w- D5 P

    1. proc gplot的简单例子

    proc gplot data=sashelp.shoes;

    plot Returns * Sales ;

    run;

    2. 我们也可以只画出符合条件的数据的图形。

    proc gplot data=sashelp.shoes;

    where Region in("United States", "EasternEurope");

    plot Returns * Sales ;

    run;

    3. 输出的图像都是默认的黑色的小十字,因此我们不能区分来自不同地区的数据,下面的程序就是为了解决这一问题

    proc gplot data=sashelp.shoes;

    where Region in("United States", "EasternEurope");

    plot Returns * Sales= Region;

    run;

    这里红色的来自美国,黑色的来自东欧,当然我们也可以自己设定颜色(SAS基本颜色有:black, red, green, blue, cyan, magenta,grey, pink, orange, brown, and yellow)。

    4. 设定坐标轴和所有文字和颜色

    proc gplot data=sashelp.shoes;

    where Region in("United States", "EasternEurope");

    plot Returns * Sales= Region/

    caxis=blue

    ctext=red

    grid;

    run;

    5. 如果要对网格进行更精细地设置,则要用到AUTOHREF和AUTOVREF选项。AUTOHREF中,LHREF设置水平线的线类型,CHREF设置水平线的线颜色;AUTOVREF中,LVREF设置垂直线的线类型,CVREF设置垂直线的线颜色。

    proc gplot data=sashelp.shoes;

    where Region in("United States", "EasternEurope");

    plot Returns * Sales= Region/

    autohref lhref=2

    chref=lime

    autovref lvref=5

    cvref=pink

    caxis=blue

    ctext=red ;

    run;

    6. 还可以用VAXIS和HAXIS分别设置纵轴和横轴的刻度。注意:如果某个数据超过了你指定的这个刻度,那么这个数据将不会被输出,因此在用这两个选项时要非常小心。

    proc gplot data=sashelp.shoes;

    where Region in("United States", "EasternEurope");

    plot Returns * Sales= Region/

    vaxis=0 to 15000 by 5000

    autohref lhref=2

    chref=lime

    autovref lvref=5

    cvref=pink

    caxis=blue

    ctext=red ;

    run;

    7. 下面介绍一些有关Graph相关过程的全局(global)设置

    title1 c=darkblue h=2.5 f=swissb "SAS/Graph "

    c=darkred h=3.0 f=swissbi "GPLOT Example";

    axis1

    label=(c=darkorange h=1.5 f=zapfbi

    j=r "Total Returns")

    offset=(0.2 in )

    order=(0 to 15000 by 5000)

    value=(c=darkorange f=swissl );

    axis2

    label=(c=darkgreen h=1.5 f=zapfbi)

    order=(0 to 500000 by 50000)

    value=(f=swissl c=darkgreen);

    symbol1 c=red h=2 v=# ;

    symbol2 c=blue h=3 v=diamond;

    " l" B% k1 l6 y- z

    proc gplot data=sashelp.shoes;

    where Region in("United States","EasternEurope");

    plot Returns * Sales=Region /

    vaxis=axis1 haxis=axis2

    autohref lhref=2 chref=lime

    autovref lvref=5 cvref=pink

    caxis=blue ctext=red ;

    run;

    各绘图过程中都指定了丰富的选项来调整图形,读者可以参考有关资料或查系统的帮助。另外,在图形中也可以用TITLE语句和FOOTNOTE语句给图形加标题和脚注。为了在图形的标题、标签中也能使用汉字,老的SAS版本需要比较多的步骤,但是在Windows下的SAS 8.0以后只要很简单的语句就可以在图形中使用True Type字型的汉字,例如: goptions ftext="宋体";

    为了把SAS/GRAPH绘制的图形保存为兼容的图形文件,只要在显示某一页图形输出时,选“File | Export”菜单,在出现的输入文件名的窗口选择适当的文件类型,如BMP、WMF 、JPEG、PS,等等。本讲义中的SAS/GRAPH图形就是从SAS中用“File| Export”输出为WMF 文件调入MS Word的结果。

    要打印SAS/GRAPH生成的图形,只要选“File | Print”。这样用Windows的打印驱动程序与SAS/GRAPH的图形驱动配合来打印。另外,SAS/GRAPH模块还提供了许多种打印机的独立的驱动程序,可以不依赖于Windows的打印驱动,具体请参考有关资料或帮助。

    我们还可以设置这些Symbol是否用线连接起来,即INTERPOLATION=(I=)设置连接方式,以及WIDTH=(W=)设置线的宽度。

    symbol1 c=red h=2 v=# i=sm50s w=2;

    symbol2 c=blue h=3 v=diamond i=splines w=2.5;

    / [7 O7 N( h7 i2 N2 n* \1 J  E

    二. Proc gchart命令

    SAS proc gchart命令可以做九种图,分别是:block(方块图)、hbar(水平条图)、hbar3d(3d水平条图)、vbar(垂直条图)、vbar3d(3d垂直条图)、pie(饼图)、pie3d(3d饼图)、dount(环形图)、star(星形图)。我以绘制直方图为例:(参照《卫生统计学第5版》p27)

    首先直方图是针对连续型变量而言的,说离散型变量(discrete variable)和连续性变量(continuous variable)是针对定量变量(quantitative variable)来说的。而定性变量(qualitativevariable)则是分为分类变量(catagorical variable)或名义变量(nominative variable)和有序变量(ordinal variable)或等级变量两种。

    以绘制直方图为例,所用的gchart命令格式主要如下:

    procgchart;

    vbar x/type=freq space=0;

    run;

    tips:space必须标注为0,否则默认的条块间是有间隔的,就成了直条图了。直条图是针对离散型变量等的。

    当然也可以用另一个命令语句来做直方图的,如下:

    proccapability;

    histogram x;

    run;

    tips:histogram只是proc capability;的一个option,所以proc capability;不能省。

    现在说说个别proc gchart;vbar x下的option:

    sumvar:用来计算数值型变量的sum和mean。当使用了sumvar时,type必须是sum或mean,默认情况下type=sum。

    type:用来指定所做直方图的纵坐标。如果sumvar没有使用的话,可以指定以下任意值:freq(默认),cfreq(cumulativefrequency),percent pct(percentage),cpercent cpct(cumulative percentage);如果使用了sumvar,就只能使用sum(默认)和mean了。

    midpoints:用来指定分段的组中值。对于数值型变量,即可以指定具体的值,也指定区间(指定区间的增量increment),或者两者可以合用。如:

    n(1,2,3,...,n)

    n1 to n2 (by increment)

    (1,2,3,...,n) n1 to n2 (by increment) (n (1,2,...,n))


    / u* C: G2 ~# N7 {6 E+ u; S0 B$ x! q" T
      x( P$ C8 R4 z8 K6 Z; P3 t" q
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-6-11 16:58 , Processed in 0.435045 second(s), 51 queries .

    回顶部