注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

零售创新,创新那些事儿,SPSS,VBA

零售创新

 
 
 

日志

 
 
关于我

新浪微博,零售创新 研究经理,数据分析师 希望和市场研究和零售业的同事共同进步! 本博客发表的都是免费或试用的资料,如果有版权问题请发邮件wangli12a@163.com联系删除。 spss excel vba blog

网易考拉推荐

通过实例学SAS(12)--产生高质量图形  

2013-08-30 11:35:49|  分类: SAS学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
通过实例学SAS(12)--产生高质量图形

原文地址:http://www.cnblogs.com/zgw21cn/archive/2008/08/25/1275894.html

1.基本概念

有一些关于图形的全局选项,如SYMBOL,PATTERN.在你改变这些设置之前,这些设置会一直起作用。有可能会忘了以前的设置,那么在产生新图形之前,加入语句RESET=all会将所有设置修改为缺省值,当然也会修改TITLE和FOOTNOTE为缺省值。例如下面是一个关于图形的基本设置。

goptions reset=all
            ftext='arial'
            htext=1.0
           ftitle='arial/bo'
           htitle=1.5
           colors=(black);

2.使用GCHART产生条形图

下面是一个示例如何产生blood的分布图

title "Distribution of Blood Types";
pattern value=empty;
proc gchart data=learn.blood;
   vbar BloodType;
run;
quit;

PATTERN语句设置条形图填充为空。而VBAR产生垂直条形图,当然还有其它选项

HBAR       水平放置的条形图

VBAR3D    三维垂直条形图

HBAR3D    三维水平条形图

PIE           饼图

PEE3D      三维饼图

DONUT     圆环图

STAR       星图

对连续变量也能产生条形图。SAS对每个bar自动产生分点(midpoint),大多数情况下,还是自已设置分点的为好。例如

pattern value=L2;
title "Distribution of WBC's";
proc gchart data=learn.blood;
         vbar WBC / midpoints=4000 to 11000 by 1000;
         format WBC comma6.;
run;

另外一种情况,是将每个数值当作一类,即将连续变量当作分类变量,作图的方式为

title "Visits by Month of the Year";
pattern value=R1;
proc gchart data=day_of_week;
    vbar Day / discrete;
run;

Gchart创建条形图,其高度代表某些统计量的值。例如,下述代码统计各地区的销售总额。

title "Total Sales by Region";
pattern1 value=L1;
axis1 order=('North' 'South' 'East' 'West');
proc gchart data=learn.sales;
    vbar Region / sumvar=TotalSales
                      type=sum
                      maxis=axis1;
    format TotalSales dollar8.;
run;
quit;

其中sumvar=指定统计变量,type=指定统计类型,若设为mean,则统计的是平均值了。

有两种方式在图中加入另外一个变量。一种方式是使用Group=选项。例如

title "Average Cholesterol by Gender";
pattern1 value=L1;
proc gchart data=learn.blood;
vbar Gender / sumvar=Chol
                   type=mean
                   group=BloodType;
run;
quit;



相当于是在x轴上对变量进行了再一次分组。

另一种方式是加入subgroup=,在每个条形图上用不同的图案表示分组。例如

title "Average Cholesterol by Gender";
pattern1 value=L1;
pattern2 value=R3;
proc gchart data=learn.blood;
    vbar BloodType / subgroup=Gender;
run;
quit;

image

3.散布图

使用proc gplot产生散布图(scatter plot),以表明x和y的关系。加入SYNBOL表达式,选择一种符号以连接点,可以是直线,曲线,甚至可以是回归直线。下面代码产生一个简单的散布图。

title "Scatter Plot of SBP by DBP";
proc gplot data=learn.clinic;
      plot SBP * DBP;
run;

image

修改x轴和y轴及点的形式

title "Scatter Plot of SBP by DBP";
symbol value=dot;
proc gplot data=learn.clinic;
    plot SBP * DBP / haxis=70 to 120 by 5
    vaxis=100 to 220 by 10;
run;

image

以symbol语句将各点以直线或曲线连接起来。例如

title "Scatter Plot of SBP by DBP";
title2 h=1.2 "Interpolation Methods";
symbol value=dot interpol=join width=2;
proc gplot data=learn.clinic;
      plot SBP * DBP;
run;

image

join表明以直线连接,width控制线的宽度。将join改为sm(代表smooth),表明将以光滑曲线连接各点。在作图前,一般要对数据排序。将sm改为sms,这一步就省了。例如

title "Scatter Plot of SBP by DBP";
title2 h=1.2 "Interprelation Methods";
symbol value=dot interpol=sms line=1 width=2;
proc gplot data=learn.clinic;
     plot SBP * DBP;
run;

image

 

 
  评论这张
 
阅读(494)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017