SAS作图详细教学教程.ppt
SAS作图详细教程,1 SAS程序的过程步,SAS的过程步可看作是已经编写好的子程序,用户可以在需要的时候调用它们。 过程步的一般形式: PROC 过程名 ; 过程的专用语句描述; RUN;,说明: 过程步都是以PROC语句开始,后面紧跟过程名,用以区分不同的过程步。 尖括号中的内容是可选项,省略时对应的系统默认值如下: 处理最近建立的数据集; 处理所有变量(对于一个计算过程步处理所有数值变量); 处理数据集中的所有观测。,2 制作散点图和连线图,散点图以数据集中某两个变量为纵坐标变量和横坐标变量,每条观测对应于图中的一个点,数据集中的多条观测就在平面上构成一幅散点图。 连线图是将散点图中的各点之间以一定的方式用直线或曲线相连所形成的图形。,散点图和连线图的作用: 1)揭示一个变量随另一个变量的变化 2)显示变量间的关系 3)对不同的数据进行比较 4)显示数据值的分析 实现:调用过程步GPLOT或PLOT。前者是在GRAPH窗口中以精确方式绘图,后者是在OUTPUT窗口中以非精确方式绘图。,1图形选项设置 一般形式: GOPTIONS 图形选项; 功能:根据需要来进行图形选项的设置,设置有关图形输出的各项参数。 说明: 此操作一般在绘图之前进行。 此语句属于环境设置语句。,恢复系统的缺省设置 图形选项: RESET = ALL | GOPTIONS | GLOBAL | 说明: GOPTIONS:将所有全局语句(如TITLE等)的设置恢复为缺省状态。 GOPTIONS:将所有关于图形的设置恢复为缺省状态。 ALL:同时实现上述两种功能。,2基本散点图 一般形式: PROC GPLOT ; PLOT 纵坐标变量*横坐标变量; RUN; 说明: 1)DATA = 数据集名:此选项指定数据集的名称,要求用二级文件名表示; 2)PLOT语句中指定纵坐标变量和横坐标变量,要求必须是数值型变量; 3)每条观测对应图上的一个点。,例1:假设数据集dst.airqual中保存的是在一段时间内美国47个州的逐月的空气质量监测数据。其中包含下列变量:,取纽约州的数据制作平均悬浮颗粒物含量随月份变化的散点图 : libname dst d:sasbookdst; goptions reset=all; proc gplot data=dst.airqual; plot ave_tsp*month; where state=NY; run; 注意:绘制高分辨率的统计图非常耗费系统资源,因此当我们提交作图语句时,SAS系统只是把它们送入程序缓冲区。只有当用户打开GRAPH窗口时,程序才真正执行,绘出统计图。然后此过程步处于驻留状态,系统可以继续执行所提交的语句,从而实现了用户和系统之间的交互操作。结束驻留状态的方法有:(1)提交另一个程序步;(2)提交QUIT语句。,3散点图和连线图的修饰 点的符号、大小、颜色; 点间连线、连线方式、线型、宽度; 坐标轴:包括刻度、标签、颜色等; 图例的配置与修饰。,3.1 SYMBOL语句 一般形式: SYMBOL 选项; 功能:用于控制图中点和连线的显示方式。 说明:n是SYMBOL语句序号,取值范围:199。系统缺省值为1。 取消SYMBOL语句的设置 不加选项的SYMBOL语句 SYMBOL; 通过恢复系统缺省设置的图形选项语句取消前面对所有SYMBOL语句的设置。 GOPTIONS RESET = SYMBOL; 性质 全局性:可以出现在过程步内或过程步之外,一旦定义则一直保持到重新定义或退出SAS系统; 可加性:一个选项的定义不影响其他选项。,1)设置点 VALUE | V = 符号:设置图中点的表示符号,COLOR | C = 颜色:设置图中点和连线的颜色。 CV=颜色:设置图中点的颜色。,HEIGHT | H = n:设置图中点的大小。 POINTLABEL:在图中每个点的旁边标注纵坐标变量的值。 例2:对于例1我们作如下修饰: goptions reset=all; symbol v=diamond cv=red h=1.5 pointlabel; proc gplot data=dst.airqual; plot ave_tsp*month; where state=NY; run;,2)设置连线 选项 : INTEPOL | I = 连线方式:设置相邻点之间的连线方式。,CI = 颜色:设置连线的颜色。 LINE | L = n:设置连线的线型。n为线型号码,取值范围:046。其中常用的有:0(空)、1(实线,缺省值)、2(由点组成的虚线)。 WIDTH | W = n:设置连线的宽度。n为宽度值。系统缺省值为1。 例3:对例1的修饰改为如下形式: goptions reset=all; symbol v=diamond h=2 cv=red i=join ci=blue l=2 w=2 pointlabel; proc gplot data=dst.airqual; plot ave_tsp*month; where state=NY; run;,说明:连线是对数据(子)集中的每一对表示相邻观测的点之间连线的,所以在绘图前要首先处理好观测在数据集中的顺序。最好是首先将数据集按横坐标变量进行排序。 例4:对sashelp.class作图,显示变量身高(Height)和体重(Weight)之间的关系。 goptions reset=all; symbol v=square i=join; proc gplot data=sashelp.class; plot weight*height; run;,3.2 设置标题和脚注 设置标题的一般格式: TITLE 字符串 字符串; 设置脚注的一般格式: FOOTNOTE 字符串 字符串 ; 功能:设置在图上显示的标题和脚注。 选项: FONT | F = 字体:设置字符串的字体。 COLOR | C = 颜色:设置字符串的颜色。 HEIGHT | H = n:设置字符的高度。,说明: 1)TITLE和FOOTNOTE语句都是全局语句,性质与SYMBOL语句相同。 2)可选项标明了TITLE或FOOTNOTE语句的序号,n的取值范围199,缺省值为1。 3)希望在标题或脚注位置显示的信息在TITLE或FOOTNOTE语句中用字符串的形式给出。在字符串前面的选项是对字符串显示性质的控制,如果不给出,则系统以缺省方式显示字符串。 4) SAS系统提供的2类字体: 硬字库:由操作系统提供的字库; 软字库:由SAS系统提供的字库。 注意:软字库的字体名直接输入即可,而硬字库的字体名两端需加引号。,获得想用的字体名: 1)在命令框中输入FONTLIST并提交; 2)在屏幕上出现的Select Font(选择字体)对话框中选择;,软字库的所有字体,点击可获得硬字库中的字体名称,例5:在例3中加入title语句: goptions reset=all; symbol v=diamond h=2 cv=red i=join ci=blue w=2 pointlabel; title f=隶书 c=green 纽约州每月的悬浮颗粒物平均值; title2 h=1.2 2002; proc gplot data=dst.airqual; plot ave_tsp*month; where state=NY; run;,3.3 设置坐标轴 AXIS语句的一般形式: AXIS 选项; 功能:设置坐标轴的显示形式,包括: 坐标轴在画面中的位置和长度, 变量值在轴上的出现次序、尺度、刻度的标注, 相关文字的字体、颜色、布局。 说明: 可选项标明了AXIS语句的序号,n的取值范围199,缺省值为1。 AXIS语句也是全局语句。 取消设置: 要取消第n号坐标轴的设置 AXIS ; 要取消所有坐标轴的设置 GOPTIONS RESET = AXIS;,选项: COLOR | C = 颜色:设置坐标轴及相关文字的颜色。 LABEL = (字符属性 字符串) | NONE:设置轴的标签及其属性。 说明:轴的标签就是轴的说明信息,可在括号中的字符串给出。系统缺省设置是显示对应变量的标签或名字。 VALUE = (字符属性 字符串) | NONE:设置轴的主刻度的描述字符及其属性。 ORDER = (值列表):设置主刻度位置依次出现的数值。 MINNOR | N = n | NONE:设置在主刻度之间加入的次刻度数n。,标签和主刻度的字符属性 : C = 颜色:设置字符颜色; F = 字体:设置字符字体; H = n:设置字符高度; R = 角度:设置单个字符的旋转角度,单位是度,逆时针方向为正。 A =角度:设置整个字符串的旋转角度。 J = LEFT | CENTER | RIGHT:设置字符串的对齐方式。 例6:设置如下坐标轴: axis1 label=(f=complex c=blue h=3pct) c=magenta w=3 minor=none; axis2 label=(a=-90 r=90 f=complex c=blue h=3pct Part Per Million) c=magenta w=3;,3.4 PLOT语句中的选项 PLOT 语句的一般形式: PLOT 纵坐标变量*横坐标变量 / 选项; 选项 : FRAME | NOFRAME:设置图中是否显示边框。 AUTOHREF | AUTOVREF:自动在图中添加经过主刻度的水平/垂直参考线。 NOAXIS:取消坐标轴以及与坐标轴相关的图形元素。 CAXIS = 颜色:设置坐标轴的颜色。 CTEXT = 颜色:设置坐标轴旁字符的颜色。 HAXIS | VAXIS = AXIS | 值列举:设置图中的横坐标轴或纵坐标轴。,例6:对于例1中的数据集,绘制如下连线图: goptions reset=all; symbol1 v=triangle h=1.5 i=join c=green w=2 ; title c=blue New York Suspended Particle Average; title2 c=blue h=1.2 2002; axis1 label=(f=complex c=blue h=3pct) c=magenta width=3 minor=none; axis2 label=(a=-90 r=90 f=complex c=blue h=3pct Parts Per Million) c=magenta width=3; proc gplot data=dst.airqual; plot ave_tsp*month/haxis=axis1 vaxis=axis2 noframe; where state=NY; run;,4多条连线的图形绘制 4.1 多幅图形的绘制 在一个过程步中绘制多幅图形,可以采用以下几种方法: (1)使用BY语句对数据集中的观测分组; (2)在PLOT语句中给出多个纵横轴变量的组合; ; (3)在过程步中使用多个PLOT语句。 说明:在PROC GPLOT过程中给出可选项UNIFORM可使不同图中同一变量的坐标轴尺度相同。,例7:分别绘制纽约州每月平均悬浮颗粒物和含铅量的连线图。 goptions reset=all; proc gplot data=dst.airqual; where state=NY; plot ave_tsp*month ave_lead*month /caxis=blue ctext=blue; symbol1 v=triangle i=join; title f=swissi c=red New York Suspended Particle Average; run;,4.2 将多条连线图绘制在同一幅画面上 1)在PLOT语句中给出选项OVERLAY; 2)在同一个过程步中使用语句PLOT、PLOT2绘制多条连线; 3)按第三个变量的值对数据集进行分组作图。,1)选项OVERLAY 例8:将纽约州每月平均悬浮颗粒物和含铅量的连线绘制在同一幅图中。 goptions reset=all; proc gplot data=dst.airqual; where state=NY; plot ave_tsp*month ave_lead*month / overlay legend hminor=0 vaxis=axis1; symbol1 v=diamond i=join c=blue l=1 w=3; symbol2 v=star i=join c=red l=2 w=3; axis1 label=(a=-90 r=90 f=swiss PARTS PER MILLION); title f=swissi c=magenta h=6pct Delaware Monthly Pollutant Averages; run;,说明: 1)在同一幅画面中坐标轴尺度相同,因此无需UNIFORM选项; 2)为了区分图中的不同连线,每条连线的显示形式应该不同。我们可以通过SYMBOL语句设置连线的参数。系统默认每条SYMBOL语句设置的连线依次使用一次。 3)PLOT语句中的选项LEGEND的功能是在图中加入图例以说明每条连线的含义。,2)PLOT2语句 一般形式: PLOT2 纵坐标变量*横坐标变量 / ; 功能:为纵坐标变量在图的右侧另外设置一个纵坐标轴,它与用PLOT语句在图的左侧设置的纵坐标轴可以用不同的AXIS语句设置。,例9:修改例8,为变量ave_lead在图的右侧建立一个纵坐标轴。 goptions reset=all; proc gplot data=dst.airqual; where state=NY; plot ave_tsp*month / overlay legend hminor=0; plot2 ave_lead*month / overlay legend; symbol1 v=diamond i=join c=blue l=1 w=3 h=1.5; symbol2 v=star i=join c=red l=2 w=3 h=1.5; title f=zapf c=blue h=6pct Delaware Monthly Pollutant Averages; run;,3)按照第三个变量分类作图 一般形式: PLOT 纵坐标变量 * 横坐标变量 = 第三变量 ; 功能:绘图时将数据集中的观测按第三个变量的值分类(第三变量值相等的观测分为一类),然后分别绘制不同的连线并置于同一幅图中。,例10:将纽约、特拉威和新泽西三个州的逐月平均悬浮颗粒物的连线图画在同一幅画面中。 goptions reset=all; proc gplot data=dst.airqual; where state in(NY DE NJ); plot ave_tsp*month=state / hminor=0; symbol1 v=diamond i=join c=blue l=1 w=2 h=1.5; symbol2 v=star i=join c=red l=2 w=2 h=1.5; symbol3 v=square i=join c=green l=3 w=2 h=1.5; title f=zapf c=blue h=5pct New York, Delaware, New Jersey TSP Average; run; 说明: (1)在按第三个变量分类作图时,系统缺省的提供图例。 (2)由于新泽西州后几个月的数据没有提供,所以在图中只显示了前几个月的连线。,4.3 LEGEND语句 主要用于对图例进行设置的全局语句。 一般形式: LEGENDn 选项; 功能:设置图例。 说明: n为LEGEND语句的序号,取值范围199,缺省值为1。 恢复所有LEGEND语句的缺省设置: GOPTIONS RESET = LEGEND; 在图中显示我们已设置的图例 : PLOT 纵坐标变量*横坐标变量 / LEGEND = LEGENDn;,选项: ACROSS = n:将图例元素排为包含n个元素的行; DOWN = n:将图例元素排为包含n个元素的列; POSITION = ( bottom | middle | top left | center | right outside | inside ):设置图例在画面上的位置,画横线的是缺省值; FRAME:设置图例区加边框; CFRAME = 颜色:设置图例区边框的颜色; CSHADOW = 颜色:设置图例区边框阴影的颜色; LABEL = ( 字符属性 字符串):设置图例标签; VALUE = ( 字符属性1 字符串1 ):设置图例中的每条连线的说明标签。,例11:修改例10中的图例。 goptions reset=all; proc gplot data=dst.airqual; where state in(NY DE NJ); plot ave_tsp*month=state / hminor=0 legend=legend1; symbol1 v=diamond i=join c=blue l=1 w=2 h=1.5; symbol2 v=star i=join c=red l=2 w=2 h=1.5; symbol3 v=square i=join c=green l=3 w=2 h=1.5; legend1 down=3 position=(top right inside) frame cshadow=black label=(f=duplex h=1.5) value=(f=duplex); title f=zapf c=blue h=5pct New York, Delaware, New Jersey TSP Average; run;,2 制作柱状图和饼图,SAS系统提供GCHART过程绘制二维或三维的柱状图或饼图,用于表现某种分类下某个变量的统计量的汇总信息。 1GCHART过程步 1.1 一般形式 PROC GCHART DATA = 数据集名; 图形名 作图变量 ; RUN; 1.2 定义要素 1)定义图表的形式; 2)定义一个作图变量(Chrat Variable)用于决定图表的自变量,也称分类变量; 3)定义一个分析变量用于计算各种统计量。,1.3 图表的形式,2. 基本汇总图 系统根据作图(分类)变量的值将观测分类,再用柱状图或饼图展示汇总结果。 说明: 1)作图变量: 字符型:变量的一个值是一类; 数值型:系统认为值是连续的,会自动将值的变化范围分为若干等长区间。并以区间的中点作标签。 2)不指明分析变量,系统默认的统计量是频数(Freq);若指明分析变量,系统默认的统计量是总和(Sum)。 3)可添加TITLE、FOOTNOTE等语句修饰图。,例:假设数据集dst.airqual中保存的是在一段时间内美国47个州的逐月的空气质量监测数据。其中包含下列变量:,例1:用垂直柱状图显示不同区域的监测次数 goptions reset=all; proc gchart data=dst.airqual; where region=1; vbar state; title c=red h=5pct f=swissl Regional Contrct Frequencies; run;,例2:用数值变量作分类变量,以垂直柱状图显示纽约州不同含铅量的监测次数 goptions reset=all; proc gchart data=dst.airqual; where state=NY; vbar ave_lead; title c=red h=5pct f=swissl Regional Contrct Frequencies; run;,3. 与分类有关的选项 说明:在CHART语句的选项中设置。 LEVELS = n:对数值型变量设置其分类数n; MIDPOINTS=值列:对字符型分类变量依次列出每类的值,对数值型分类变量依次列出每个区间的中点; 格式: 值列形式:值1 值2 初值 to 终值 by 步长 DISCRETE:对于每个数值型分类变量取值作为一类,适用于离散型数值变量; ASCENDING | DESCENDING:按统计量值的升序或降序排列各柱或饼的各角。,例:在下面的过程步中分别以下列vbar语句代替原有的vbar语句,可以看到不同效果。 goptions reset=all; proc gchart data=dst.airqual; vbar ave_lead; run; vbar ave_lead / levels=2; vbar month /discrete; vbar month /midpoints=1 to 12 by 3; vbar state /midpoints=NY DE NJ;,4. 选择分类变量和统计量 说明:在CHART语句的选项中设置。 SUMVAR=变量名:设置分析变量; TYPE = FREQ | CFREQ | PERCENT | CPERCENT | MEAN | SUM:设置统计量。 FREQ:频数; CFREQ:累积频数; PERCENT:百分数; CPERCENT:累积百分数; MEAN :均值; SUM:总和。,例:以水平柱状图显示各地区悬浮颗粒物含量的平均值的平均值 goptions reset=all; proc gchart data=dst.airqual; hbar region /sumvar=ave_tsp type=mean; run;,5. 显示统计量 说明:在CHART语句的选项中设置。 NOSTAT:在图中不显示统计量; OUTSIDE =统计量:在柱的外部显示; INSIDE =统计量:在柱的内部显示; 例:以三维垂直柱状图显示各地区悬浮颗粒物含量的平均值的平均值,并标注频数和累计频数。 proc gchart data=dst.airqual; vbar3d region /sumvar=ave_tsp type=mean inside=freq outside=cfreq; run;,6. 柱状图的修饰 6.1 在CHART语句的选项中设置。 1)坐标轴 NOAXIS:不显示与坐标轴有关的内容; CAXIS = 颜色:设置坐标轴的颜色; CTEXT = 颜色:设置轴旁文字的颜色; MAXIS = AXISn:设置分类变量的坐标轴; RAXIS = AXISn:设置统计量的坐标轴; MINOR = n:统计量坐标轴的主刻度之间加入的次刻度数; AUTOREF:自动显示参照线,垂直于统计量坐标轴。,2)边框 NOFRAME:不显示边框; CFRAME = 颜色:设置边框的颜色。 3)柱宽 WIDTH = n:设置柱宽(单位:CELL) SPACE = n:设置柱间宽度(单位:CELL),6.2 PATTERN语句 功能:修饰图的显示图案。 一般格式: PATTERNn 选项; 说明: n为PATTERN语句的序号,取值范围199,缺省值为1。 取消设置: 取消第n号图案设置: PATTERNn; 取消所有图案设置: GOPTIONS RESET=PATTERN; 选项: COLOR = 颜色:设置颜色; VALUE|V = 花纹值:设置花纹,常见有: E:空心;S:实心;Ln、Rn、Xn:分别为斜线和交叉线,n为密度值。,7. 饼图的修饰 7.1 颜色和花纹 在PIE语句的选项中设置: FILL = SOLID | Xn | E:设为实心、交叉线或空心的; CFILL = 颜色:设置花纹颜色; COUTLINE =颜色:设置轮廓线颜色; ASCENDING | DESCENDING:各角升序或降序排列。 在PATTERN语句的选项中设置: VALUE|V = PE | PS | Pntaaa PE:空心 PS:实心 Pntaaa:n密度;t线形,N平行,X交叉;aaa角度。,例1:用饼图表示各地区观测所占的百分比,各扇形用蓝色交叉线填充。 proc gchart data=dst.airqual; pie region /type=percent fill=x3 cfill=blue; run;,7.2 加入分类变量和统计量的值 说明:饼图无坐标轴,所以分类变量只能标在图中。缺省的标在紧靠饼的外部。 在PIE语句中的选项设置: SLICE = 方法:设置标注分类变量值的方法; PERCENT =方法:设置标注百分数值的方法; VALUE =方法:设置标注统计量值的方法; 可选方法: ARROW:以箭头引向饼外; INSIDE:在饼内; OUTSIDE:在饼外临近处。,例:用3D饼图表示各地区的观测平均悬浮颗粒物的总和,并且标注分类变量、百分数和统计变量。 proc gchart data=dst.airqual; pie3d region /sumvar=ave_tsp slice=arrow percent=inside value=outside; run;,7.3 插入分组变量 方法:在CHART语句中加入选项 GROUP = 变量 功能:将按指定变量的值对观测分组,为每组数据制作一个饼图。 例:分别为纽约州和新泽西州的数据建立饼图,用以显示各月份的数据。 proc gchart data=dst.airqual; where state in (NY NJ); pie3d month /group=state across=2 slice=inside; run;,7.4 突出与归并某些类别 在PIE语句中设置: EXPLODE = 值:设置从饼中分离出的类别; MATCHCOLOR :设置字与饼的颜色一致; OTHER = n:将百分数n的类别归入OTHER类中; OTHERLABEL = 字符串:设置OTHER类的标签,