SAS讲义第二十一课条形图圆饼图和星形图.docx
- 文档编号:5151892
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:39
- 大小:725.50KB
SAS讲义第二十一课条形图圆饼图和星形图.docx
《SAS讲义第二十一课条形图圆饼图和星形图.docx》由会员分享,可在线阅读,更多相关《SAS讲义第二十一课条形图圆饼图和星形图.docx(39页珍藏版)》请在冰豆网上搜索。
SAS讲义第二十一课条形图圆饼图和星形图
第二十一课条形图、圆饼图和星形图
与PLOT过程和GPLOT过程的关系一样,PROCCHART过程是用来画易生成的低分辩率的图形,输出在OUTPUT窗口。
而PROCGCHART过程是用来生成定制的、高分辨率的图形,输出在GRAPH窗口。
在这里我们将只介绍GCHART过程。
使用GCHART图表可以形象地表示变量的取值大小和两个以上变量之间的关系。
可以绘制垂直和水平的条形图、块形图、圆饼图、星形图等。
一.PROCGCHART过程的功能和语句说明
GCHART过程不仅能把输入数据集中的变量值以各种图形的方式显示出来,而且能把输入数据集中的一个或多个变量按分组进行各种统计计算,然后再把统计结果以图形的方式显示出来。
也就是说,GCHART过程具有统计和显示图表的两大功能。
1PROCGCHART过程的一般格式
GCHART过程一般由下列语句控制:
ProcGchart
DATA=数据集;
VBAR
变量列表
<通用选项列表>
HBAR
变量列表
<通用选项列表>
BLOCK
变量列表
<通用选项列表xBLOCK专用选项列表>>;
PIE
变量列表
<通用选项列表>
STAR
变量列表
<通用选项列表>
By
变量列表
;
Run;
在PROCGCHART语句后面可以跟随着任何多个图形要求的语句,如上面的VBAR、
BLOCK等语句。
也就是一个GCHART过程能够对一个指定的数据集画出任意多个各种不同的图形。
每一个图形要求语句需要指定一个图形变量或多个图形变量用于将它们的值画图。
由于每个图形要求语句的选项众多,将它们的选项分成两部分:
通用选项列表和专用选项列表。
所谓通用选项列表是指这些选项可以用在每个图形要求语句中,而专用选项列表指这些选项只有本语句可使用。
在PROCGCHART过程的使用时,常常选用BY语句。
BY语句指定一个变量或多个变量后,将按指定的变量进行分组处理,然后按每一个被BY语句指定的变量分组生成分开的
图形。
我们以VBAR图形要求语句为例来说明各个图形要求语句的基本使用情况。
VBAB语句
用来列出用户想要画的垂直条形图的那些变量。
每个图形变量对应一张垂直条形图。
每张图表占一页。
垂直条形图的纵坐标轴用来表示频数、累计频数、百分数、累计百分数、总和或平均值。
在每个条形图的横坐标轴上都标有该图形变量的各个对应值。
如果图形变量是字符变量或离散的数值变量,那么在对应的横坐标上将标记真实值;如果图形变量是连续变量,
上海财经大学经济信息管理系IS/SHUFE
那么在对应的横坐标上将标记变量值的区间中点。
除此之外,在PROCGCHART过程中还可以使用AXISn、LEGENDn、PATTERNn>TITLEn、FOOTNOTEn、NOTE、DONUD语句。
2PROCGCHART过程的三要素
由PROCGCHART过程产生图形要决定以下三个要素:
(1)・选择图形的表示方法
下面的几种图形至少要选一种:
VBAR语句绘制垂直条形图或垂直直方图。
HBAR语句一一绘制水平条形图或水平直方图。
BLOCK语句——绘制块形图。
PIE语句一一绘制圆饼图。
STAR语句一一绘制星形图。
通过对上面不同语句的选择,确定图形的表示方法。
在每种图形中,由图表变量确定的值画出对应大小的条图或线段。
(2).选择变量的统计量
在选定了图形以后,可以在语句后面的选项中,通过TYPE选项来选择对变量的不同统
计量,TYPE的缺省值是FREQ,然后将统计量以条形或线段表示。
统计量的类型有:
TYPE=FREQ――统计图形变量的各个给定值或间隔的频数。
TYPE=CFREQ――统计图形变量各个给定值或落入给定区间的累计频数。
TYPE=PCT――统计图形变量各个给定值或落入给定区间的观测数的百分比。
TYPE=CPCT――统计图形变量各个给定值或落入给定区间观测数的累计百分比。
TYPE=SUM――统计图形变量所有值的总和。
TYPE=MEAN――统计图形变量所有值的平均值。
例如:
VBARX/TYPE=MEAN语句,指对输入数据集中的X变量求平均值,然后将平均值用垂直条形图显示。
(3).选择分组特性
可以使用图形选择语句后面的一些选项,来控制在语句中指定的图形变量的分组,下面
的选项可控制如何进行分组:
DISCRETE――把一个数字变量当成离散变量,而不是连续变量。
把每一个数字值作为图形的一个分开的条形或线段。
如果省略该选项,过程则假定变量都是连续的。
如果没有规定选项MIDPOINTS=或LEVELS=,过程自动选择图表的间隔。
GROUP=变量一一用于对指定变量进行并排分组。
SUBGROUP=变量列表一一将条形或线段按照指定变量的值分成段。
MIDPOINTS=数值列表一一规定连续性图形变量按数字列表中的中心点数字次序进行排列。
缺省值为,如果图形变量是数字型,过程将自动计算各个中心点值;如果图形变量是字符型,或是数字型但选择了DISCRETE选项(即离散型数字变
量),过程为每个图形变量的不同值产生一个中心点值。
LEVELS=数字一一指定数字型图形变量的条形或线段个数。
上海财经大学经济信息管理系IS/SHUFE
SUMVAR=变量一一指定用于计算总和或均数的变量。
3通用和专用选项列表
通用选项列表中的选项是用于VBAR、HBAR、BLOCK、PIE和STAR语句的共同选项,
主要是一些我们刚在上面已介绍的分组特性选项和变量统计量TYPE选项。
专用选项列表中的选项是各个不同的图形语句自己的特有选项。
主要的选项见下表:
选项
应用语句
功能说明
AXIS=<最小值>最大值
VBAR、HBAR
定义坐标轴的最小值和最大值
GSPACE=间隔数
定义条形组间的间隔空间数大小
ASC/DESC
VBAR、HBAR、PIE
每组内按升序/降序显示条形及有关统计量
G100
VBAR、HBAR、BLOCK
强迫每个组的条图和统计量加到100%
BLOCKMAX
BLOCK
定义图中最高块的统计量值
ANGLE=角度数字
PIE、STAR
定义开始逆时针旋转的角度
FILL=SOLID或X
每一区域用纯色或交叉线填充
CFILL=颜色
定义图中所有文本的颜色
NOLEGEND
除了STAR
不输出SUBGROUP变量的图例
NOHEADING
BLOCK、PIE、STAR
不输岀在图表顶部的抬头行
.条形图
条形图是利用相同宽度条形的长短或高低表现各相互对立的统计数据大小或变动的统计图。
条形图可分成水平条形图(又称带形图)和垂直条形图(又称柱形图),分别用HBAR
和VBAR语句实现。
无论水平条形图还是垂直条形图,都有三种类型的图式:
简单条形图一一是以若干平行且等宽的距行表现数量对比关系的一种图形,各条
之间有间隙。
简单条形图也称为单式条形图。
图形语句的特点是无GROUP和
SUBGROUP选项。
分组条形图一一是指由每两条或以上条组成一组的条形图,组与组之间有大间隔,每组内条形之间无间隙或小间隙。
分组条形图也称复式条形图。
图形语句的特点是使用GROUP选项。
分段条形图一一是以条形的全长代表某个变量的整体,条形内部的各分段长短代表各组部分在整体中所占比例的统计图,每一段之间没有间隙并用不同线条或颜色表示,各条之间有间隙。
由于每个条图由若干段组成,因此分段条形图又可称作分量条形图。
图形语句的特点是使用SUBGROUP选项。
下面我们通过举例来说明各种条形图的使用。
1简单条形图
例如,我们想统计计算上证指数从1月到12月每月的平均涨跌情况。
设定从INDEXSH
数据集中选择1991年1月1日到1999年12月31日的观测数据作为统计计算对象。
由于INDEXSH数据集包含的是周线数据,而不是日线数据,所以这些统计计算结果会有误差。
为
上海财经大学经济信息管理系IS/SHUFE
了能进行相应地统计计算和绘制出对应的条形图,必须对INDEXSH数据集先进行一些处理。
由于SAS的日期值在计算机内部存储的是数字值,我们用MONTH()函数从日期值DATE中取出月份数字存放到MONTH变量中,转换形成一个新的数据集INDEXSH2,新增的这个
MONTH变量取值为1〜12月。
然后调用PROCGCHART图表过程确定MONTH为图形变量,周涨跌CHANGE_为统计变量,统计类型为求平均值,这样将对所有相同月份的CHANGE%
值求平均,并用条形长短表示。
程序如下:
Goptionsreset=globalgunit=pctcback=whiteborder
htitle=6htext=3ftext=swissbcolors=(back)
Libnamestudy"d:
\sasdata\mydir";
Datastudy.indexsh2;
setstudy.indexsh;
where'31dec1990'd month=month(date); Procformat; Valuemday仁'Jan'2='Feb'3='Mar'4='Apr'5='May'6='Jun' 7='Jul'8='Aug'9='Sep'10='Oct'11='Nov'12='Dec' Procgchartdata=study.indexsh2; vbarmonth/discrete sumvar=change type=mean; formatmonthmday.; title'ShanghaiStockIndex'; title2'Increasebyanaverageofpercentamonth'; title3'1991.01.01---1999.12.31'; Run; 程序说明: DATA数据步由INDEXSH数据集转换形成INDEXSH2数据集,新增MONTH变量的值等于同一观测中的DATE变量中的月份值,数据集INDEXSH2去掉了原数据集中不 完整月份的观测,即去掉一些头尾观测。 PROCFORMAT格式化过程自定义了格式M_DAY, 能将1〜12个数字输出为对应的月份英文缩写。 PROCGCHART过程确定对新数据集 INDEXSH2绘制垂直条形图,图形变量为MONTH,由于MONTH是数字变量,故要选用 DISCRETE选项,确定它为数字型离散变量。 SUMVAR=CHANGE_选项确定数据集中的 CHANGE_变量为计算统计量,TYPE=MEAN选项确定统计类型为求平均值,即对相同 MONTH值的CHANGE_变量值求平均。 程序的运行结果显示在GRAPH窗口中,见图21-1所示。 上海财经大学经济信息管理系IS/SHUFE ShanghaiStocklnde Incrsassbyanofpj? icsntame 1991.01.011Q9i9.iaai 5%- 图21—1上证指数月涨跌百分比简单条形图 从条形图显示的统计结果中,我们可清楚地看出,上半年的机会远远大于下半年,总体投资策略应该下半年休息,年未建仓,上半年持股待涨到五、六月清仓。 其中五月份是全年上涨最大的月份,七月份下跌风险较大,八月份反弹机会较大。 2分组条形图 例如,我们有一个学生成绩数据集CLASS,记录每个学生三门课程的成绩。 现在想要按 每个学生分组,用条形的高低表示各自三门课程的成绩。 通常对数据集中数据进行绘图前,先要检查数据集的数据库结构是否符合图形过程的要求,如果不,就不能绘制出符合人们要求的图形,需要将数据集进行适当地转换。 实事上,数据集CLASS的数据库结构不满足数据 库设计的1NF(第一范式),也同样不满足PROCGCHART过程对制作此图的要求。 我们用DATA数据步生成一个新的数据集GCLASS,用以消除重复项TEST1、TEST2、TEST3,统 一用变量TEST取代,而用COURSE变量存放不同的课程名称。 为了便于理解和比较,新数据集中我们没有去掉TEST1、TEST2、TEST3变量。 用PROCGCHART过程对新数据集GCLASS绘制分组条形时,指定的图形变量是 COURSE,将显示COURSE变量中各个不同值的条形;分组变量指定为NAME,将显示NAME变量中各个不同值的分组;统计变量指定为TEST,统计类型缺省为求和,将对同一分组值中 同一图形变量值的各TEST值求和,本例数据中,每次求和TEST变量的记录都只有一条记 录。 程序如 Goptionsreset=globalgunit=pctcback=whiteborder htitle=6htext=3ftext=swissbcolors=(back); Libnamestudy"d: \sasdata\mydir"; 上海财经大学经济信息管理系IS/SHUFE Datastudy.Gclass; Setstudy.class; COURSE='DBS';TEST=TEST1;OUTPUT; COURSE='MIS';TEST=TEST2;OUTPUT; COURSE='DSS';TEST=TEST3;OUTPUT; Procprintdata=study.Gclass; Title'Study.Gclassdataset'; Procgchartdata=study.Gclass; VbarCOURSE/group=NAME sumvar=TEST axis=60to100by10 autoref; Title'Vbarcourse/Group=name'; Run; 程序说明: DATA数据步创建GCLASS数据集,将原来CLASS数据集的一条记录变成三条记录,用COURSE变量存放三门课程的名称DBS、MIS、DSS,用TEST变量存放成绩。 新数据集GCLASS,用PROCPRINT打印过程输出,见图21-2所示。 PROCGCHART过程中图形语句的AXIS选项,由于语句是VBAR垂直条形图,所以它指纵轴上的刻度。 AUTOREF选项,是自动画参考线,通过每一个主刻度线画出相应一条垂直于刻度坐标轴的参考线。 程序的运行结果显示在GRAPH窗口中,见图21-3所示。 「片F^ilc: KilltsXsO-p~tiqh-stfindpwHelp|占|X| [Zl--3_AJ毎1%]血1BSl* 图21-2符合分组条形图的GCLASS数据集 上海财经大学经济信息管理系IS/SHUFE Vbarcourse;X3roup=name 在曹T 图21-3用PROCGCHART过程绘制的分组条形图 分段条形图 例如,如果我们想要比较每个学生的考试总分和平均分,还能比较构成总分的各科成绩的大小,最恰当就是使用分段条形图来表示。 程序如下: Goptionsreset=globalgunit=pctcback=whiteborderhtitle=6htext=3ftext=swissbcolors=(back) Libnamestudy"d: \sasdata\mydir"; Procgchartdata=study.Gclass; HbarNAME/Subgroup=COURSE sumvar=TEST summeanascendingref=180270 Title'HbarNAME/Subgroup=COURSE'; Run; 程序的运行结果显示在GRAPH窗口中,见图21-4所示。 上海财经大学经济信息管理系IS/SHUFE HbarNAME/Subgroup=C 图21-4用PROCGCHART过程绘制的分段条形图 程序说明: PROCGCHART过程指定输入数据集为GCLASS,HBAR图形语句指定画水平条形图。 图形变量指定为NAME,分段变量指定为COURSE,统计变量指定为TEST。 SUM和MEAN选项指定对相同NAME值的TEST统计变量求和和求平均值。 ASCENDING选项 要求图形变量NAME值按升序排列。 REF=180270选项将在横坐标轴180和270处画出两条垂直参考线。 要特别注意SUM、MEAN选项与TYPE=SUM或MEAN选项的区别,前者指对如WANGWU学生三门课程DBS、MIS、DSS的统计量求和、求平均,后者指对如WANGWEU学生几次DBS考试成绩求和、求平均。 三•块形图 块形图与分组条形图和分段条形图都有点类似,最主要的区别仅在于块形图以三维立体方式显示条形。 例如,我们将上面绘制分段条形图的过程进行一些修改,主要用BLOCK语 句代替HBAR语句,图形变量、组变量和统计变量不变,分段选项SUBGROUP=改为分组选 项GROUP=。 程序如下: Goptionsreset=globalgunit=pctcback=whiteborderhtitle=6htext=3ftext=swissbcolors=(back) Libnamestudy"d: \sasdata\mydir"; Procgchartdata=study.Gclass; BlockNAME/group=COURSE sumvar=TEST; Run; 上海财经大学经济信息管理系IS/SHUFE 程序的运行结果显示在GRAPH窗口中,见图21-5所示。 图21—5用PROCGCHART过程绘制的块形图 四•圆饼图 圆饼图是以圆的整体面积代表被研究现象的总体,按各构成部分占总体比重的大小把原 面积分割成若干扇形,用以表示现象的部分对总体的比例关系的统计图。 现象的总体在SAS 系统中被指定为某一研究变量,即PROCGCHART过程中,用PIE语句指定的图形变量,所 要统计的变量由选项SUMVAR=变量来指定。 例如,我们要统计每个学生的平均分并对他们的成绩进行比较,查看哪个学生的考试成绩最好,哪个学生的考试成绩最差,所占比例多少。 最简单方法是绘制圆饼图。 程序如下: Goptionsreset=globalgunit=pctcback=whiteborderhtitle=6htext=3ftext=swissbcolors=(back) Libnamestudy"d: \sasdata\mydir"; Procgchartdata=study.Gclass; Piename/sumvar=test type=mean slice=arrow percent=inside value=arrow explode='Wangwu''zhaoliu' 上海财经大学经济信息管理系IS/SHUFE StatisticRecordsofStu MSANofbyNAM£ 图21-6用PROCGCHART过程绘制的圆饼图 angle=90ctext=blackcfill=black; Title'StatisticRecordsofStudents'; Run; 程序说明: 想要绘制理想的圆饼图,需要设置许多重要的选项。 PROCGCHART过程的 PIE语句,首先要指定图形变量为NAME,统计变量为TEST,统计类型为求平均值MEAN。 其它的一些选项主要用于修饰图形,常用的有: SLICE=ARROW—每一块扇形对应的NAME值标签方式,=ARROW表示用一条线指向扇形,=INSIDE表示标签在扇形内部,=NONE表示没有标签,=OUTSIDE表示标签在扇形外部。 PERCENT=INSID——每一块扇形相应百分比数的标签方式,同样有四种值,=ARROW,=INSIDE,=NONE,=OUTSIDE。 VALUE=ARROW—每一块扇形统计值的标签方式,也同样有四种值,=ARROW, =INSIDE,=NONE,=OUTSIDE。 EXPLODE='WangwU'zhaoliu把在列表中列出的NAME变量值所对应的扇形分离出去,可以从视觉上起到强调这一块扇形的目的。 请注意列表中字符串要与变量NAME中值的大小写完全匹配。 ANGLE=90列列指定第一块扇形的起始的角度,缺省值为0。 CTEXT=BLACK列列设置图中所有文字为黑色,还可以其它颜色。 CFILL=BLACK列列设置图中所有文本为黑色,还可以其它颜色。 COUTLINE=BLACK列列设置扇形的轮廓线为黑色,还可以其它颜色。 FILL=SOLID或X列列设置各个扇形用颜色区别或用交叉线区别。 如果无此选项, 则扇形内为空白。 程序的运行结果显示在GRAPH窗口中,见图21-6所示。 星形图 星形图是把观测总体用一个360度角表示,每一构成部分等分360度角,且每一构成部 上海财经大学经济信息管理系IS/SHUFE 分的统计量大小用一条与角中心点相连的线段长短表示,然后将各线段的顶点依此连接起来。 星形图适用于周期性数据,如一年的月份或者一天的小时,也适用于成分组成数据,如描述某食品的维生素组成和大小。 例如,我们要统计上证指数九年中1月份成交量平均值、2月份成交量平均值、……12 月份的成交量平均值,并用星形图表示。 程序如下: Goptionsreset=globalgunit=pctcback=whiteborder htitle=6htext=3ftext=swissbcolors=(back); LibnameStudy"d: \sasdata\mydir"; Procformat; valuem_day1='Jan'2='Feb'3='Mar'4='Apr'5='May'6='Jun'7='Jul'8='Aug'9='Sep'10='Oct'1仁'Nov'12='Dec'Procgchartdata=study.indexsh2; starmonth/discrete sumvar=volumetype=mean; formatmonthmday.; title'ShanghaiStockIndex'; title2'1991.01.01---1999.12.31'; Run; 程序说明: 数据集INDEXSH2是从INDEXSH数据集转换过来的,各条观测已经按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS 讲义 第二十一 条形 圆饼 星形