前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAS-GTL,帮我征个婚呗~

SAS-GTL,帮我征个婚呗~

作者头像
Setup
发布2019-10-21 16:29:55
1.3K0
发布2019-10-21 16:29:55
举报
文章被收录于专栏:SAS程序分享号号号

“GTL”(Graph Template Language),是SAS画图的一门语言,小编最近开始学习画图,当然也逃脱不了学习GTL,用“一入侯门深似海”来形容一点也不为过,还没入门就已经发现了GTL里面的水很深,不是一般的深,option多的简直没有天理了....奥,对了,今天的主题不是GTL,是“征婚”!是的,小编的公开征婚系列第一帖!希望不会有第二贴。

从不知道多少年前开始,小编就非常害怕过春节!为什么呢,因为要走亲串户,作为单身汪的小编总要被七大姑八大姨格外的问候一次,一次,又一次...一年一年又一年的过去,时间表已经提上了日程...93后已步入中年的大叔(小编)给自己下了最后的通牒,2018不成功便成仁~

不知此刻的你有没有与小编一样的紧迫感呢?小编单身这么多年,其实是有原因的,小编想要找一个自己心中的“女神”,接下来小编将一一量化小编心中的女神~

文章和代码会很长很长很长....我觉得这又是一个轻松的话题,就像“下雨天炸鸡和瓶酒”一样,听一首小编喜欢的歌曲...看代码的效果会更好喔~

I’m here!

小编目前所在地:北京(作为一只北漂单身“汪”)

应征对象地域要求:无,小编喜欢一句话:“海内存知己天涯若比邻”。好像用在这儿有点“引喻失义”。交通如此发达的今天,小编相信地域并不是无法逾越的,当然如果在北京,是更好的!嗯,下面来说说这个图怎么画的,这个图啊,为了这个征婚帖,小编从一个月以前就开酝酿,最后决定还是以画图的方式来展示...嗯,图到底是怎么画的!图小编百度上学的,世界上著名的几个SAS画图的博客上找到一段代码改编的....

下面来看看代码

代码语言:javascript
复制
GOPTIONS RESET=ALL CBACK=WHITE BORDER HTITLE=15PT HTEXT=12PT ; 
/*******************************
RESET=ALL 将所有图形选项设为默认状态
CBACK=   设置背景颜色
FTEXT=   字体样式
ROTATE/NOROTATE 图形方向
HSIZE/VSIZE 高宽
BORDER/NOBORDER 是否有边框
************************************/
PROC DELETE DATA=WORK._ALL_;QUIT;
DATA CITIES;
LENGTH CITY $200;
INPUT X Y CITY $;
X=ATAN(1)/45 * X;
Y=ATAN(1)/45 * Y;
DATALINES;
-116.433 39.917 帝都
-100 32 天
-110 32 朝
-130 25 备注:[1]不限地域
-131 24 [2]不限民族
;
RUN;
DATA WORLD(RENAME=(LONG=X LAT=Y));
SET MAPS.CHINA(DROP=X Y);
RUN;
DATA COMBO;
SET WORLD CITIES;
RUN;
PROC GPROJECT DATA=COMBO OUT=PROJ PROJECT=GALL;
ID ID;
RUN;
QUIT;
DATA MAP ANNO;
SET PROJ;
IF CITY='' THEN OUTPUT MAP;
ELSE OUTPUT ANNO;
RUN;
DATA ANNO;
LENGTH COLOR $ 8 TEXT $ 20 STYLE $ 25;
SET ANNO;
RETAIN XSYS YSYS '2' FUNCTION 'LABEL' WHEN 'A' ;
SIZE=1;
STYLE='SPECIAL';
TEXT='M';
COLOR='RED';
OUTPUT;
STYLE="'ALBANY AMT'";
POSITION='2';
TEXT=CITY;
COLOR='BLACK';
SIZE=1.3;
OUTPUT;
RUN;
DATA ANNO;
SET ANNO;
IF LENGTH(CITY)^=4 AND TEXT='M' THEN DELETE;
IF LENGTH(CITY)=2 THEN SIZE=3;
IF LENGTH(CITY)=4 THEN COLOR='RED';
IF LENGTH(CITY)>10 THEN SIZE=0.9;
RUN;
ODS LISTING CLOSE;
ODS HTML FILE="WWWW.HTML" PATH='D:\日常练习\SAS_GTL\OUTPUT\' 
IMAGE_DPI=100;
ODS GRAPHICS / RESET IMAGENAME='WWWW' IMAGEFMT=GIF;
PATTERN1 V=ME R=85;
TITLE1 H=5 BOX=1
F=SPECIAL C=RED  
H=1.2 'M' F='ALBANY AMT' C=BLACK H=1.2 " I'M HERE , AND YOU? " 
F=SPECIAL C=RED   H=1.2 'M';
FOOTNOTE1 BOX=1
F=SPECIAL C=RED
H=1.2 'M' F='ALBANY AMT' C=BLACK H=1.2 ' NOTE: NO MATTER WHERE 
YOU ARE,YOU CAN TAKE PART IN THIS ACTIVITY.';
PROC GMAP DATA=MAP MAP=MAP;
ID ID;
CHORO ID / ANNO=ANNO NOLEGEND COUTLINE=GRAYAA;
RUN;
QUIT;
ODS HTML CLOSE;
ODS LISTING;
Age
Age

小编的年龄:1993-11(这是法定年龄)

小编的生辰八字:癸酉 己末 乙卯 丙戌(大概丙戌时,不太准,爸妈都忘记了我啥时候出生的)

小编对年龄的期望:21-26是小编认为的最佳区间...

接下来就看看,这个图的代码是怎么画的...其实小编不会画图,这些图都是为了画图而画的图...

代码语言:javascript
复制
DATA A;
INPUT AGE GRADE ;
DATALINES;
17 -5 
19  0  
21.5 5
26  5 
30  0
;
RUN;
/*************************************
REG:  回归图形
XAXIS :GRID 这是网格线 VALUES 坐标轴刻度的设置值
REFLINE 参照线
***************************************/
ODS HTML FILE="WWWW.HTML" PATH='D:\日常练习\SAS_GTL\OUTPUT\'
IMAGE_DPI=100;
ODS GRAPHICS / RESET IMAGENAME='AGA' IMAGEFMT=GIF WIDTH=10IN;
PROC SGPLOT DATA = A;
REFLINE 0 5/ AXIS=Y LINEATTRS=GRAPHREFERENCE(PATTERN = DOT
COLOR=RED THICKNESS=0.7 MM ) NAME="REFLINE1"
LABEL = ('BASE LINE' 'EXPECT LINE') ;
REFLINE 19 21.5 26 30/ AXIS=X LINEATTRS=GRAPHREFERENCE(PATTERN = DOT
COLOR=RED THICKNESS=0.7 MM )
NAME="REFLINE" LABEL = ('排除标准1:<19' 'GOOD LINE1'
'GOOD LINE2' '排除标准2:>30') ;
REG Y=GRADE X=AGE / DEGREE=2 LINEATTRS=(PATTERN=DASH COLOR=BLUE
THICKNESS=0.5 MM ) NAME='L1' LEGENDLABEL='LINE1' ;
REG Y=GRADE X=AGE / DEGREE=3 LINEATTRS=(PATTERN=DASH COLOR= DARKGREEN
THICKNESS=0.5 MM ) NAME='L2' LEGENDLABEL='LINE2';
REG Y=GRADE X=AGE / DEGREE=4 LINEATTRS=(PATTERN=DASH COLOR=BLACK
THICKNESS=0.5 MM ) NAME='L3' LEGENDLABEL='LINE3';
REG Y=GRADE X=AGE / DEGREE=5 LINEATTRS=(PATTERN=DASH COLOR=ORANGE
THICKNESS=0.5 MM ) NAME='L4' LEGENDLABEL='LINE4';
DISCRETELEGEND 'L1' 'L2' 'L3' 'L4'/ ACROSS=4;
INSET (" NOTE: [1]I'M 25 YEARS OLD:(1993-11)" =" "
"  [2]PLEASE LOOK THE PLOT:(21.5-26) IS MY EXPECT" = "") / 
TEXTATTRS=(COLOR=RED FAMILY=楷体 SIZE=7
STYLE=ITALIC WEIGHT=BOLD);
XAXIS GRID VALUES=(18 TO 30 BY 0.5) LABELATTRS=(COLOR=BLUE STYLE=ITALIC) ;
YAXIS GRID VALUES=(-5 TO 6.5 BY 0.5) LABELATTRS=(COLOR=GREEN WEIGHT=BOLD ) ;
TITLE 'RELATIONSHIP BETWEEN GRADE AND AGE';
RUN;
ODS HTML CLOSE;
ODS LISTING;
/********************************************
GTL语言实现类似的效果:小编的还没有入门
所以做不到一模一样
*******************************************/
PROC TEMPLATE;
DEFINE STATGRAPH SCATTER;
BEGINGRAPH;
ENTRYTITLE "RELATIONSHIP BETWEEN GRADE AND AGE";
LAYOUT OVERLAY/XAXISOPTS=(GRIDDISPLAY=ON GRIDATTRS=(COLOR=LIGHTGRAY PATTERN=DOT));
PBSPLINEPLOT Y=GRADE X=AGE /DEGREE=2 NAME='L1' LEGENDLABEL='LINE1'
LINEATTRS=(PATTERN=DASH COLOR=BLUE THICKNESS=0.5 MM );
PBSPLINEPLOT Y=GRADE X=AGE /DEGREE=3 NAME='L2' LEGENDLABEL='LINE2'
LINEATTRS=(PATTERN=DASH COLOR=BLACK THICKNESS=0.5 MM );
REFERENCELINE Y=0 / NAME="REFLINE1" LEGENDLABEL='BASE LINE'
CURVELABEL="BASE LINE" LINEATTRS=( PATTERN=DASH COLOR=RED);
REFERENCELINE Y=5 / NAME="REFLINE2" LEGENDLABEL='EXPECT LINE'
CURVELABEL="EXPECT LINE" LINEATTRS=( PATTERN=DASH COLOR=RED);
REFERENCELINE X=21.5 / NAME="REFLINE3" LEGENDLABEL='第一根好线'
CURVELABEL="第一根好线" LINEATTRS=( PATTERN=DASH COLOR=RED); 
REFERENCELINE X=26 / NAME="REFLINE4" LEGENDLABEL='第二根好线'
CURVELABEL="第二根好线" LINEATTRS=( PATTERN=DASH COLOR=RED); 
DISCRETELEGEND 'L1' 'L2' 'REFLINE2' 'REFLINE2' 'REFLINE3' 'REFLINE4'/ ACROSS=4;
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA=A TEMPLATE=SCATTER;
RUN;
BMI
BMI

快来对号入座!!!看看你的BMI在那个区间内,

和临床试验相关的朋友肯定都知道BMI这个词,它是身体质量指数。

是的,小编征婚还要看BMI~为啥呢,BMI数值过大就太胖(营养过剩),数值过小太廋(营养不良)..

小编的身高:172cm

小编的体重:65KG左右,体重这个东西,吃饭前和吃饭后不一样,上完厕所和不上厕所又不一样,冬天和夏天还是不一样....

密密麻麻的小星星看的是不是眼花缭乱,是不是完全不知道小编心中女神的身高和体重应该是怎么的....(那么请看接下来的一张5分图)

是的,小编心中的女神的身高和体重就是在图中那个红色的五角星组成的梯形面积中,你在里面么?在么?不在?不要着急,接下来看各个得分所分布的区间...

又要到对号入座的时刻了...

从这个得分图中,能否发现小编的审美观是什么样的,是不是有着严重的偏倚性,奥,偏倚好像不能用着这儿,应该说对某一个指标有一定倾向性....嗯,接下来有到了代码时刻了,请看代码吧。

代码语言:javascript
复制
PROC DELETE DATA=WORK._ALL_;QUIT;
DATA  NORMAL;
DO  HEIGHT = 1.56 TO 1.80 BY 0.01;
DO  WEIGHT = 40 TO 65 BY 0.5;
BMI  = ROUND(WEIGHT/(HEIGHT**2),.01);
OUTPUT;
END;
END;
RUN  ;
DATA  NORMAL1;
SET  NORMAL;
LENGTH  GROUP $200.;
IF  BMI<=17.5 THEN  GROUP='BMI<=17.5';
ELSE IF 17.5<BMI<=18 THEN  GROUP='17.5<BMI<=18';
ELSE IF 18<BMI<=19 THEN  GROUP='18<BMI<=19';
ELSE IF 19<BMI<=20 THEN  GROUP='19<BMI<=20';
ELSE IF 20<BMI<=21 THEN  GROUP='20<BMI<=21';
ELSE IF 21<BMI<=22 THEN  GROUP='21<BMI<=22';
ELSE IF 22<BMI<=23 THEN  GROUP='22<BMI<=23';
ELSE IF 23<BMI<=24 THEN  GROUP='23<BMI<=24';
ELSE  GROUP='24<BMI';
RUN;
DATA  NORMAL2;
SET  NORMAL;
LENGTH  GROUP $200.;
IF 17.5<BMI<=18 THEN  GROUP='17.5<BMI<=18';
ELSE IF 18<BMI<=19 THEN  GROUP='18<BMI<=19';
ELSE IF 19<BMI<=20 THEN  GROUP='19<BMI<=20';
ELSE IF 20<BMI<=21 THEN  GROUP='20<BMI<=21';
ELSE IF 21<BMI<=22 THEN  GROUP='21<BMI<=22';
ELSE IF 22<BMI<=23 THEN  GROUP='22<BMI<=23';
IF  HEIGHT<1.6  OR WEIGHT>60  OR WEIGHT<45 
THEN DELETE;
IF  ^MISSING(GROUP) THEN DO;
GROUP='GRADE=5';
OUTPUT;
END;
RUN;
DATA  NORMAL3;
SET  NORMAL;
LENGTH  GROUP $200.;
IF 17.5<BMI<=18 THEN  GROUP='17.5<BMI<=18';
ELSE IF 18<BMI<=19 THEN  GROUP='18<BMI<=19';
ELSE IF 19<BMI<=20 THEN  GROUP='19<BMI<=20';
ELSE IF 20<BMI<=21 THEN  GROUP='20<BMI<=21';
ELSE IF 21<BMI<=22 THEN  GROUP='21<BMI<=22';
ELSE IF 22<BMI<=23 THEN  GROUP='22<BMI<=23';
IF  ^(HEIGHT<1.6  OR WEIGHT>60  OR WEIGHT<45)  AND ^MISSING(GROUP) 
THEN  GRADE='GRADE=5';
IF  MISSING(GRADE) AND (HEIGHT>=1.6  AND( 45<=WEIGHT<=60))
THEN  GRADE='GRADE=4';
IF  MISSING(GRADE) AND (HEIGHT>=1.6  AND( WEIGHT<45))
THEN  GRADE='GRADE=3';
IF  MISSING(GRADE) AND (HEIGHT>=1.6  AND( 60<WEIGHT))
THEN  GRADE='GRADE=2';
IF  MISSING(GRADE) AND (HEIGHT<1.6  AND( 60<=WEIGHT))  
THEN  GRADE='GRADE=1';
IF  MISSING(GRADE) AND (HEIGHT<1.6  AND( 45<WEIGHT<60))  
THEN  GRADE='GRADE=3';
IF  MISSING(GRADE) AND (HEIGHT<1.6  AND( 40<WEIGHT<45))
THEN  GRADE='GRADE=4';
RUN;
ODS HTML FILE="WWWW.HTML" PATH='D:\日常练习\SAS_GTL\OUTPUT\' IMAGE_DPI=100;
ODS GRAPHICS  / RESET IMAGENAME='AGA' IMAGEFMT=GIF WIDTH=10IN;
PROC SGPLOT DATA  = NORMAL1;
SCATTER X  = HEIGHT Y  = WEIGHT/GROUP=GROUP  MARKERATTRS=(SYMBOL=STAR  SIZE=2  MM); ;
XAXIS GRID VALUES=(1.56  TO 1.80  BY 0.01)  LABELATTRS=(COLOR=BLUE  STYLE=ITALIC)  
LABEL  ='身高(M)';
YAXIS GRID VALUES=(40  TO 65  BY 0.5)  LABELATTRS=(COLOR=GREEN  WEIGHT=BOLD  ) 
LABEL  ='体重(KG)'  ;
REFLINE 1.60  / AXIS=X  LINEATTRS=GRAPHREFERENCE(PATTERN  = DOT  COLOR=RED
THICKNESS=0.7  MM )  NAME="REFLINE1" LABEL  = ( 'EXPECT  LINE')  ;
REFLINE 45 60/  AXIS=Y  LINEATTRS=GRAPHREFERENCE(PATTERN  = DOT  COLOR=RED  
THICKNESS=0.7  MM )  NAME="REFLINE" LABEL  = ( 'GOOD  LINE1' 'GOOD  LINE2'  )  ;
TITLE 'BMI  = ROUND(WEIGHT/(HEIGHT**2),.01)';
RUN;
PROC SGPLOT DATA  = NORMAL2 ;
SCATTER X  = HEIGHT Y  = WEIGHT/GROUP=GROUP  MARKERATTRS=(SYMBOL=STAR  COLOR=RED  SIZE=2  MM)   ;
XAXIS GRID VALUES=(1.56  TO 1.80  BY 0.01)  LABELATTRS=(COLOR=BLUE  STYLE=ITALIC)
LABEL  ='身高(M)'  ;
YAXIS GRID VALUES=(40  TO 65  BY 0.5)  LABELATTRS=(COLOR=GREEN  WEIGHT=BOLD  ) 
LABEL  ='体重(KG)'  ;
REFLINE 1.60  / AXIS=X  LINEATTRS=GRAPHREFERENCE(PATTERN  = DOT  COLOR=RED
THICKNESS=0.7  MM )  NAME="REFLINE1" LABEL  = ( 'EXPECT  LINE')  ;
REFLINE 45 60/  AXIS=Y  LINEATTRS=GRAPHREFERENCE(PATTERN  = DOT  COLOR=RED  
THICKNESS=0.7  MM )  NAME="REFLINE" LABEL  = ( 'GOOD  LINE1' 'GOOD  LINE2'  )  ;
TITLE 'BMI  = ROUND(WEIGHT/(HEIGHT**2),.01)';
RUN;
PROC SGPANEL DATA  = NORMAL3;
PANELBY  GRADE / NOVARNAME SPACING  =0 ROWS  = 2 COLUMNS  = 3;
SCATTER X  = HEIGHT Y  = WEIGHT/ MARKERATTRS=(SYMBOL=STAR  COLOR=RED  SIZE=2  MM)   ;
REFLINE 1.60  / AXIS=X  LINEATTRS=GRAPHREFERENCE(PATTERN  = DOT  COLOR=BLACK  THICKNESS=0.7  MM ) 
NAME="L1" LABEL  = ( 'EXPECT  LINE')  LEGENDLABEL='EXPECT  LINE';
REFLINE 45 60/  AXIS=Y  LINEATTRS=GRAPHREFERENCE(PATTERN  = DOT  COLOR=RED  THICKNESS=0.7  MM )  
NAME="L2" LABEL  = ( 'GOOD  LINE1' 'GOOD  LINE2'  )  LEGENDLABEL='GOOD  LINE'  ;
DISCRETELEGEND 'L1' 'L2'  / ACROSS=2;  
TITLE 'RELATIONSHIP  BETWEEN GRADE AND BMI';
RUN;
ODS HTML CLOSE;
ODS LISTING;
MAJOR
MAJOR

小编的专业:计算机科学与技术

小编的职业:SAS programmer/医药行业

小编期望的专业:金融/统计/医药类为最佳

小编的理由:有共同的话题,可以互帮互助,小编对于统计‘七窍通了六窍,还是一窍不通’,当然小编在努力的学习,同样还需要一个老师,你愿意做我老师么?同样,小编虽说程序见的不多,现在经验还少,不过我相信,在共同的努力下,不管是金融还是临床的SAS编程,未来的小编将游刃有余。。。是的,我就是这么“自负”...

那么接下来,就来看看这个图是如何画的...

代码语言:javascript
复制
DATA A;
LENGTH MAJOR $200.;
INPUT MAJOR$   GRADE;
CARDS;
多学位(包含金融/统计/医药) 7
多学位 5
金融类 5
统计类 5
医药类 5
计算机类 4.5
语言/文学类 4
其他   3
;
RUN;
ODS HTML FILE="WWWW.HTML" PATH='D:\日常练习\SAS_GTL\OUTPUT\' IMAGE_DPI=100;
ODS GRAPHICS / RESET IMAGENAME='AGA' IMAGEFMT=GIF WIDTH=10IN;
PROC SGPLOT DATA=A;
TITLE 'RELATIONSHIP BETWEEN GRADE AND MAJOR';
HBAR MAJOR / RESPONSE=GRADE ;
XAXIS GRID VALUES=(0 TO 8 BY 0.5) LABELATTRS=(COLOR=BLUE STYLE=ITALIC ) LABEL='GRADE'   ;
YAXIS GRID LABELATTRS=(COLOR=BLUE STYLE=ITALIC)  LABEL='MAJOR';
REFLINE 5 / AXIS=X LINEATTRS=GRAPHREFERENCE(PATTERN = SHORTDASH
COLOR=RED THICKNESS=0.7 MM )  NAME="L1" LEGENDLABEL='EXPECT LINE' ;
DISCRETELEGEND 'L1' / ACROSS=1;
RUN;
/*************************
GTL实现类似的效果
*****************************/
PROC TEMPLATE;
DEFINE STATGRAPH BARCHART;
BEGINGRAPH;
ENTRYTITLE 'RELATIONSHIP BETWEEN GRADE AND MAJOR';
LAYOUT OVERLAY;
BARCHART X=MAJOR Y=GRADE /ORIENT=HORIZONTAL;
REFERENCELINE X=5 / NAME="REFLINE4" LEGENDLABEL='EXPECT LINE' CURVELABEL="EXPECT LINE" LINEATTRS=( PATTERN=DASH COLOR=RED);
DISCRETELEGEND 'REFLINE4'/ ACROSS=1;
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA=A TEMPLATE=BARCHART;
RUN;
ODS HTML CLOSE;
ODS LISTING;
LANGUAGE
LANGUAGE

小编的语言能力:小编英文很差(四级没有过...)好吧,这是我最大的败笔,现在知道小编SAS编程技术为什么这么差!!因为英语不好,好多文献都是英文的(比较好的SAS文档基本上全是官网的全英),所以小编学习SAS很吃力,吃力啊...想想一把辛酸泪,不过现在以及习惯了,毕竟也学习SAS有一年又10个月的时间了,不过小编觉得小编的英语再好一点,小编的SAS编程水平提升的将不止2个level了...

小编的期望:英语要比我好,这虽说不是硬性但也是很重要的一点,现在知道了吧,不仅找工作看英语水平,找对象也要看英语水平...

嗯,接下来来看看这个图是怎么画的...

代码语言:javascript
复制
DATA A;
LENGTH LANGUAGE $200.;
INPUT LANGUAGE$   GRADE;
CARDS;
英语四级 5
英语六级 6
海外本科及以上 6
其他小语种  5
无级但在努力学习 5
无级不学习 -5
英语不好但多地方言说的很溜 4
;
RUN;
ODS HTML FILE="WWWW.HTML" PATH='D:\日常练习\SAS_GTL\OUTPUT\' IMAGE_DPI=100;
ODS GRAPHICS / RESET IMAGENAME='AGA' IMAGEFMT=GIF WIDTH=10IN;
PROC SGPLOT DATA=A;
TITLE 'RELATIONSHIP BETWEEN GRADE AND LANGUAGE';
NEEDLE X=LANGUAGE Y=GRADE;
REFLINE 5 / AXIS=Y LINEATTRS=GRAPHREFERENCE(PATTERN = SHORTDASH  COLOR=RED THICKNESS=0.7 MM )  NAME="L1" LABEL='EXPECT LINE' LEGENDLABEL='EXPECT LINE' ;
REFLINE -5 / AXIS=Y LINEATTRS=GRAPHREFERENCE(PATTERN = SHORTDASH  COLOR=BLACK THICKNESS=0.7 MM )  NAME="L2" LABEL='BAD LINE' LEGENDLABEL='BAD LINE' ;
RUN;
ODS HTML CLOSE;
ODS LISTING;
/**********************************
GTL实现类似的效果
***********************/
PROC TEMPLATE;
DEFINE STATGRAPH NEEDLE;
BEGINGRAPH;
ENTRYTITLE 'RELATIONSHIP BETWEEN GRADE AND LANGUAGE';
LAYOUT OVERLAY;
NEEDLEPLOT X=LANGUAGE Y=GRADE;
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA=A TEMPLATE=NEEDLE;
RUN;
FACE&EDU
FACE&EDU

爱美之心人皆有之,小编也是一个看的脸的人,看图就可以看出来哎...不过这个得分主要看你对你自己长相的满意度咯,看的是你的心态...好像在为我找对象看脸找借口...小编长的很普通,我只能得4分...在看学历:小编是一个的本科生,是一个比较垃圾的本科生..嗯 ,所以我的期望当然是学历至少不比我差。我是一个向往美好事物的人的...小编所接触的圈子,学历都比我好..硕士多如毛,博士满地走...接下来看看这个图怎么画的!

代码语言:javascript
复制
DATA A;
LENGTH FACE EDU $200.;
INPUT FACE $   GRADE  EDU $;
CARDS;
自以为不好看 0  高中及以下
自以为普通 4    专科
自以为还可以 5   本科
自以为堪比世界小姐 4  本科结业
朋友以为堪世界小姐 6  硕士
除陌生或者亲人累计超过5人夸漂亮 5  硕士结业
;
RUN;
ODS HTML FILE="WWWW.HTML" PATH='D:\日常练习\SAS_GTL\OUTPUT\' IMAGE_DPI=100;
ODS GRAPHICS / RESET IMAGENAME='AGA' IMAGEFMT=GIF WIDTH=10IN;
PROC TEMPLATE;
DEFINE STATGRAPH TEMPA;
BEGINGRAPH;
ENTRYTITLE 'FACE AND EDU ';
LAYOUT GRIDDED / ROWS=2 COLUMNS=2 WIDTH=300PX HEIGHT=200PX  ;
LAYOUT OVERLAY;
SCATTERPLOT Y=GRADE X=FACE;
SERIESPLOT X=FACE Y=GRADE;
SERIESPLOT X=EDU Y=GRADE;
REFERENCELINE Y=0 / NAME="REFLINE4" LEGENDLABEL='BASE LINE'
CURVELABEL="BASE LINE" LINEATTRS=( PATTERN=DOT COLOR=RED);
REFERENCELINE Y=5 / NAME="REFLINE4" LEGENDLABEL='EXPECT LINE'
CURVELABEL="EXPECT LINE" LINEATTRS=( PATTERN=DOT COLOR=RED);
REFERENCELINE X='除陌生或者亲人累计超过5人夸漂亮' / NAME="分界线"
LEGENDLABEL='分界线' CURVELABEL="分界线" LINEATTRS=( PATTERN=DASH COLOR=RED);
ENDLAYOUT;
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA=A TEMPLATE=TEMPA;
RUN;
HEART
HEART

人的品性也是小编需要衡量的一个标准,人的品性小编看来是很重要的,正直与善良是一个最基本要求,小编是一个自私的人,不要求“老吾老以及人之老,幼吾幼以及人之幼”,但必须要“老吾老”与“幼吾幼”。接下来且看,这个矢量图是如何画的。。

代码语言:javascript
复制
DATA A;
LENGTH TYPE  $200.;
INPUT TYPE $   DIM1 DIM2;
LABEL DIM1 = '敬老爱幼' DIM2 = '善良正直';
DATALINES;
有一颗好心 5 5
有一颗坏心 -5 -5
;
RUN;
ODS HTML FILE="WWWW.HTML" PATH='D:\日常练习\SAS_GTL\OUTPUT\'
IMAGE_DPI=100;
PROC TEMPLATE;
DEFINE STATGRAPH VECTOR;
BEGINGRAPH;
ENTRYTITLE 'RELATIONSHIP BETWEEN GRADE AND HEART';
LAYOUT OVERLAYEQUATED / EQUATETYPE=FIT;
REFERENCELINE Y=0 / NAME="REFLINE1" LEGENDLABEL='BASE LINE'
CURVELABEL="BASE LINE" LINEATTRS=( PATTERN=DOT COLOR=RED);
REFERENCELINE Y=-5 / NAME="REFLINE2" LEGENDLABEL='BAD LINE'
CURVELABEL="BAD LINE" LINEATTRS=( PATTERN=DASH COLOR=RED);
REFERENCELINE Y=5 / NAME="REFLINE3" LEGENDLABEL='EXPECT LINE'
CURVELABEL="EXPECT LINE" LINEATTRS=( PATTERN=DASH COLOR=RED);
REFERENCELINE X=0/ NAME="REFLINE4" LEGENDLABEL='BASE LINE'
CURVELABEL="BASE LINE" LINEATTRS=( PATTERN=DOT COLOR=RED);
REFERENCELINE X=5 / NAME="REFLINE5" LEGENDLABEL='EXPECT LINE'
CURVELABEL="EXPECT LINE" LINEATTRS=( PATTERN=DASH COLOR=RED);
REFERENCELINE X=-5 / NAME="REFLINE6" LEGENDLABEL='BAD LINE'
CURVELABEL="BAD LINE" LINEATTRS=( PATTERN=DASH COLOR=RED);
VECTORPLOT Y=DIM2 X=DIM1 XORIGIN=0 YORIGIN=0 /
DATALABEL=TYPE GROUP=TYPE LINEATTRS=(PATTERN=SOLID);
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA=A TEMPLATE=VECTOR;
RUN;
ODS GRAPHICS / RESET IMAGENAME='AGA' IMAGEFMT=GIF WIDTH=10IN;
PROC SGPLOT DATA=A NOAUTOLEGEND;
TITLE 'RELATIONSHIP BETWEEN GRADE AND HEART';
REFLINE 0 5 -5/ AXIS=Y LINEATTRS=GRAPHREFERENCE(PATTERN = DOT
COLOR=RED THICKNESS=0.7 MM )
NAME="REFLINE1" LABEL = ('BASE LINE' 'EXPECT LINE' 'BAD LINE') ;
REFLINE 0 5 -5/ AXIS=X LINEATTRS=GRAPHREFERENCE(PATTERN = DOT
COLOR=RED THICKNESS=0.7 MM ) 
NAME="REFLINE2" LABEL = ('BASE LINE' 'EXPECT LINE' 'BAD LINE');
VECTOR X=DIM1 Y=DIM2 / DATALABEL=TYPE GROUP=TYPE LINEATTRS=(PATTERN=DASH);
XAXIS GRID VALUES=(-5 0 5) LABELATTRS=(COLOR=BLUE STYLE=ITALIC) ;
YAXIS GRID VALUES=(-5 0 5) LABELATTRS=(COLOR=GREEN WEIGHT=BOLD ) ;
RUN;
PIECHART
PIECHART

这是一张饼图,来计算一下你的最终得分,这是一项5分制的评分,小编的心中的女神当然是满分5+分咯(因为有附加分)...嗯,在来看看这张图是怎么画的...

代码语言:javascript
复制
DATA A;
LENGTH TYPE  $200.;
INPUT TYPE $   RATIO;
CARDS;
AGE 10
BMI 15
MAJOR 25
HEART 20
LANGUAGE 15
FACE 5
EDU 10
;
RUN;
ODS HTML FILE="WWWW.HTML" PATH='D:\日常练习\SAS_GTL\OUTPUT\' IMAGE_DPI=100;
ODS GRAPHICS / RESET IMAGENAME='AGA' IMAGEFMT=GIF WIDTH=10IN;
TITLE2 ANGLE=-90 " ";
PROC GCHART DATA=A;
PIE TYPE / TYPE=SUM SUMVAR=RATIO NOHEADING
VALUE=NONE
SLICE=OUTSIDE
PERCENT=ARROW
PLABEL=(FONT="ALBANY AMT/BOLD" HEIGHT=2.0 COLOR=BLUE)
PPERCENT=(FONT="ALBANY AMT" HEIGHT=3.0 COLOR=RED)
DES='' NAME=""; 
RUN;
QUIT;
/******************************
GTL的类似代码
**********************/
PROC TEMPLATE;
DEFINE STATGRAPH REGION;
BEGINGRAPH;
ENTRYTITLE "权重";
LAYOUT REGION;
PIECHART CATEGORY=TYPE RESPONSE=RATIO /DATASKIN=PRESSED DATALABELLOCATION=OUTSIDE;
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
QUIT;
ODS GRAPHICS ON / RESET OUTPUTFMT=STATIC;
PROC SGRENDER DATA=A TEMPLATE=REGION;
RUN;
QUIT;

写到这儿,小编的图差不多就都画完了,因为暂时还没想到其他的要求啥的...其实吧,小编画图还没有学会,这些都是属于“中国制造”,文中的图,都是看着书上的代码改的。。正所谓“画虎画皮难画骨”,如果要说小编这一周的学习成效的话,那就是前尖距离GTL的门槛还有1cm,还没入门。同样,小编也要做一个征婚总结语,看完以后有没有觉得这不是在征婚,这是在招聘,招聘一个有文化,有学历,专业对口,年轻漂亮,做事能干,为人正直,富有爱心的女孩。是的,我也觉得我是在招聘,我在给我自己的未来招聘一个股东,招聘事业上的合伙人,同样也是在自己找一个可以相伴一生携手前行的伴侣。为什么对别人有这么多要求...能做女神的当然必须要有做“女神”的资本...

“人生不如意之事,十常有八九”,小编也很有自知之明,虽然女神遥不可及,但是我还是想在争取一下,如果一下不够,小编可能还会来第二下,未来的第二下,可能是Logistics在解决单身问题上的应用想设计一个调查问卷收集数据,但是发现我还得继续在多读几本统计相关的书才能比较好的设计出来....

这个排期大概也要过一年吧....

小编还要再补充一句哦,文中仅个人审美观点,不带有任何其他歧视。当然用数据说话就离不开误差,何况征婚,爱情这东西呢,小编是个纯粹的现实主义者,不相信爱情,但相信感情,日子相处久了就会有感情,就好像养了一只自己喜欢的阿猫阿狗,即使不喜欢养久了也会习惯了。奥,不对!这儿怎么能把人比作阿猫阿狗呢

反正就算这个意思啊...好像又岔题了。不是小编的女神也不要灰心!兴许你就是小编的那个误差呢...(允许误差的范围(无单项是负分))

即使你不合适,请帮小编问问你身边的单身小姐姐,单身小妹妹,或者打算分手的小姐姐,小妹妹....(我好像暴露了我是一个坏人的本质).....

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAS程序分享号号号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下面来看看代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档