1、第二十二课 三维图形 SAS系统除了可以绘制二维平面图形外,还可以绘制三维立体图形。使用PROC G3D过程能对在PLOT或SCATTER语句中指定的变量值绘制三维图形。PROC G3D过程产生的三维图形分为两种:三维曲面图和三维散布图。三维曲面图是通过在PLOT语句中指定三个图形变量来产生,三维散布图是在SCATTER语句中必需指定三个图形变量才能产生,同样还可以对三维散布图进行大小、形状、颜色的修改。 一. PROC G3D过程说明 PROC G3D过程产生三维高分辨率立体图形,一般由下列语句控制: Proc G3D DATA=数据集 ; PLOT
2、Y*X=Z 选项>; SCATTER Y*X=Z 选项>; TITLEn ‘字符串’; FOOTNOTEn ‘字符串’; By 变量列表 ; Run ; 在PROC G3D过程中至少要有一条PLOT或SCATTER语句,如果两条语句同时存在,将在一页中产生一个三维曲面图,下一页中产生一个三维散布图。语句中的Y*X=Z指定三个图形变量X、Y、Z,三维空间中的图形点由三个变量的值共同决定,X和Y为水平变量,Z为垂直变量。PLOT语句是将X、Y、Z三个变量值确定的空间图形点相互连成曲面,而SCATTER语句是将X、Y、Z三个变量值确定的空间图形
3、点用符号表示或画出图形点向XY平面的垂直线(采用NEEDLE选项)。一个PROC G3D过程中可以有多条SCATTER语句。 1 PLOT语句的选项 用在PLOT语句中的选项按功能可以分为三类:外观选项、轴选项和描述性选项。主要选项如下: l ROTATE=角度列表——指定三维图形Z轴的一个或多个旋转角度,缺省值为70度。如果有多个旋转角度,将画出对应多个不同旋转角度的三维图形。 l TILT=角度列表——指定三维图形Y轴的一个或多个倾斜角度,缺省值为70度。如果有多个倾斜角度,将画出对应多个不同倾斜角度的三维图形。 l GRID——在所有坐标轴的每一个刻度线上画出网格线。 l S
4、IDE——在三维曲面图形中画出侧面墙。 l XTICKNUM=n YTICKNUM=n ZTICKNUM=n——指定X、Y、Z坐标轴上的刻度线数目n,缺省值为4。 l ZMAX=最大数字值 ZMIN=最小数字值——设定Z轴上最大的数字值和最小的数字值,超出了最大值和最小值的Z变量值部分将被省略。 还有设置图形各个对象颜色的选项,如CBOTTOM、CTOP、CTEXT、CAXIS选项,分别指定顶部、底部、文本和所有轴的颜色。其它还有NOAXES选项表示不画出坐标轴,NOLABEL选项表示不显示轴的刻度值和轴标签。 2 SCATTER语句的选项 SCATTER语句包含上面PLOT语句的这
5、些选项,还有自己的一些常用选项如下: l NONEEDLE——不画出图形点向XY平面的垂直线。 l SHAPE=‘符号名’——指定符号名或字符变量名。符号用于显示散布图的图形点的形状,有BALLOON 、DIAMOND 、PRISM 、CLUB 、FLAG 、PYRAMID、CROSS 、HEART、SPADE 、CUBE 、PILLAR 、SQUARE、CYLINDER 、POINT 、STAR。 l SIZE=大小值——指定图形点符号的大小值。 l COLOR=颜色名——指定图形点符号的颜色。 二. 曲面图 例如,在前面我们用GCONTOUR过程绘制了表达式Z=2+7X-X2
6、9Y-Y2二维平面的利润等值线图,现在,我们可以用PROC G3D过程的PLOT语句画出三维立体的利润曲面图。我们仍然采用相同的数据集STUDY.PROFIT来绘制。 程序如下: Goptions reset=global gunit=pct cback=white border htitle=6 htext=3 ftext=swissb colors=(back) ; Libname Study "d:\sasdata\mydir" ; Proc g3d data=study.profit ; Plot y*x=z / rotate=160 tilt=80 c
7、top=black caxis=black cbottom=black grid zmax=34 zmin=-16 xticknum=10 yticknum=10 zticknum=11; Title 'Profit Surface' ; Run ; 二维等利润线所构成的一圈圈大小值不同的同心椭圆,是由三维利润曲面中相同的Z值点在XY平面投影所构成。图形中显示的曲面形状与公式的吻合程度, 与STUDY.PROFIT数据集中的观测条数有关,如果我们在STUDY.PROFIT数据集中生成的X、Y、Z数据点数越多,吻合程度越高。 ROTATE和TILT选项指定三维立体图形的观察角
8、度,Z轴的旋转角度为160度,Y轴的倾斜角度为80度。CTOP、CAXIS和CBOTTOM选项的参数值都定义为黑色BLACK,是由于我们在黑白印刷时只能看到黑色,用户实际使用时可以改为其它彩色颜色。GRID选项的选用,将使图形中的XY平面出现按主刻度划分的网格线,Y轴的墙面上也将出现按主刻度划分的网格线。通过对ZMAX、ZMIN选项的参数设定,可以控制三维图形的观察区间。XTICKNUM、YTICKNUM、YTICKNUM选项,用于设定X轴、Y轴、Z轴的主刻度线的条数。 程序的运行结果显示在GRAPH窗口中,见图22-1所示。 图22-1 用PROC G3D过程的PLOT语句定制
9、的曲面图 下面我们再给出一个画二维正态分布的联合密度函数的图形。二维连续型随机向量(X,Y)的联合密度函数为: 其中μ1和μ2为X和Y的均值,σ1和σ2为X和Y的方差,ρ为X和Y的相关系数,绝对值小于1。为简单起见,我们设μ1和μ2为0,σ1和σ2为1,相关系数为0.5。 程序如下: Goptions reset=global gunit=pct cback=white border htitle=6 htext=3 ftext=swissb colors=(back); libname study "d:\sasdata\mydir"; data st
10、udy.normal3d; format z 5.1; do x=-3 to 3 by 0.05; do y=-3 to 3 by 0.05; Z=1/(2*3.14*SQRT(1-0.5**2))*EXP(-1/(2*(1-0.5**2))*(X**2-2*0.5*X*Y+Y**2)); output; end; end; proc g3d data=study.normal3d ; plot y*x=z /rotate=160 ctop=r
11、ed caxis=black cbottom=blue tilt=65 grid xticknum=10 yticknum=10 zticknum=10 zmax=0.2 zmin=0; title '3D Normal Distribution ' ;
12、 title2 'Ex=0,Ey=0,Dx=1,Dy=1,Pxy=0.5'; run; 程序的运行结果显示在GRAPH窗口中,见图22-2所示: 图22-2 用PROC G3D过程的PLOT语句定制的二维正态分布的联合密度函数的图形 三. 汽泡图 用PROC G3D过程的SCATTER语句绘制的三维散布图,与用PORC GPLOT过程的PLOT语句绘制的二维散布图相比,三维散布图能表现三个变量X、Y、Z在三维空间中的关系和趋势,而二维散布图只能表现二个变量X、Y在二维平面上的关系和趋势。下面,我们以上证指数中的日期DATE、成交量VOLUME、收盘价CLOSE三个关键变量
13、的值来绘制三维散布图,我们把图形点符号用小汽泡表示,也可称为汽泡图。 程序如下: Goptions reset=global gunit=pct cback=white border htitle=6 htext=3 ftext=swissb colors=(back) ; Libname Study "d:\sasdata\mydir" ; Proc g3d data=study.indexsh ; Scatter volume*date=close /shape= 'balloon' noneedle size=1 rotate=70 tilt=80
14、 color='black' caxis=black zmax=2100 zmin=100 zticknum=11 xticknum=7 yticknum=7 ; Title1 'Shanghai StockIndex Balloon' ; Title2 ' 1990.12.21---2000.01.07' ; Run ; 程序说明:数据集STUDY.INDEXSH中存放的是上证指数周线数据,成交量VOLUME和日期DATE作为X、Y轴,收盘价CLOSE作为Z轴。选项shape= 'balloon'指定数据点的图形符号为汽泡,选项noneedle表示不向XY平面作垂直线,选项size=1表示图形符号的大小尺寸为1个单位。 程序的运行结果显示在GRAPH窗口中,见图22-3所示: 图22-3 上证指数汽泡图 上证指数汽泡图是一种新的研判行情的技术分析方法。可以通过研究汽泡群与脱离群体的个体汽泡之间的关系,以及汽泡群的形成过程和移动方向、规律等,来研判大势的风向和风险程度。 上海财经大学经济信息管理系IS/SHUFE Page 5 of 5






