187:SAS画图-指定颜色等属性和合并标签

提前祝大家新年快乐,兔年突~突~突~突~突!

没有显示屏就是不舒服,甚至想在老家买块显示屏,但是知道自己的尿性,大多数时间都在玩,混,学习是不可能学习的,所以买了也是吃灰...

-----------------------------------------------

临床项目中的图形,大多数时候是为了让数据以更直观清晰的角度呈现,所以对于图形中的线条颜色、形状可能只要不同组能区分开来就行了。

但是有时候项目会有特殊需求,比如说要求某个组用什么颜色,某个组用什么形状,这个时候就有些麻烦了,所以我们今天就来讲一讲如何处理这种情况。我们以SASHELP.CLASS数据集为例,以‘男女’当作两个不同的组别,_n_作为X轴.

一:指定颜色和形状等属性

指定某个组别用什么颜色可以通过discreteattrmap和discreteattrvar。下面我来解释一下各个参数的意思,今天讲到的基础知识在后面就不讲了:



1:discreteattrmap:定义一组图形属性,这些属性可以与用户定义的集相关联。这个单词可以分成几部分,discrete:离散的,可以理解为有多组;attr:attribute的缩写,属性,也就是我们在这个里面定义多个组的属性,也就是我们可以根据我们数据集里面的值定义我们想要的属性,比如颜色,形状等。注意写完之后要加上enddiscreteattrmap;

有几个需要注意的点,我就不翻译了,重点标出来了,直接从SASHELP复制过来

①:You must place the DISCRETEATTRMAP block directly inside the BEGINGRAPH block between the BEGINGRAPH statement and the first LAYOUT statement. Do not embed it in any other GTL statement block.位置看下面的程序,看看DISCRETEATTRMAP 放在哪。

②:The DISCRETEATTRMAP block must contain at lease one VALUE statement.

③:The DISCRETEATTRVAR statement must be used to associate the discrete attribute map with a data column.

1.1:name="" 这个选项必须要有,相当于为你定义的属性起了一个名字,方便后面DISCRETEATTRVAR调用,否则你定义的那些属性,怎么实现在图里呢。该名称可以在DISCRETEATTRVAR语句中引用,该语句用于将属性映射(attribute map)与输入数据列(数据集中的变量)关联起来。

name=""XXXX字符串区分大小写,必须用引号括起来。

    1.2:value="XXXX",可以简单理解为引号里面的就是数据集里面的某个变量的值,是你准备分组的变量,在这个例子中是SEX,但是在项目中可能就是TRT01A,看你要为什么分组。

specifies one or more formatted strings or the keyword OTHER. Strings are always quoted. Multiple strings must be separated by blanks, and each of the strings must be enclosed in its own set of quotation marks. The formatted strings must be equal to the formatted values of the classification column that is used with the DISCRETEATTRVAR statement.

value="XXXX"后面加上一个斜杠,就可以定义更多的属性,比如线条的属性(LINEATTRS),标志的属性(MARKERATTRS),所以你看我在程序中定义了线条的颜色,但是没有定义加号的属性,突然冒出了蓝色的加号,就莫名其妙,我在画KM图时没有定义标志的颜色也正常显示,但是大家最好还是加上吧。


加上标志的属性后,markerattrs=(color=red ),颜色正常显示了

discreteattrmap就这几个重要的选项就能实现为不同组定义不同的属性,但是我们只是定义了属性,但是怎么告诉SAS我画图的时候,碰到不同的组的时候,需要用上我提前定义的属性呢?这就需要用到DISCRETEATTRVAR statement。

2:DISCRETEATTRVAR:Creates a named association between a user-defined discrete attribute map and an input data column.

DISCRETEATTRVAR相当于一座桥梁,将我们自己定义的属性和画图的数据集联系起来。就这么理解就差不多了。需要注意的点也是上面的①讲到的。

2.1:ATTRVAR=attrvar-name:specifies a SAS name for this association between the attribute map and the input column.

DISCRETEATTRVAR调用discreteattrmap起的名字,但是DISCRETEATTRVAR起的名字就得在后面的GTL语句调用了,也就是后面的group=DIFCOL_name。所以这两个调用的名字和地方需要注意一下。同时ATTRVAR=不需要引号,直接等于一个名字。

    2.2:VAR=data-column| expression | dynamic,这个VAR选项specifies an input data column to be associated with an attribute map at run time.也就是VAR选项直接指明哪个变量用于属性展示

If the column is not found or the column is of the wrong type for the attribute map, then the DISCRETEATTRVAR statement is ignored.

    2.3:ATTRMAP="attrmap-name ":specifies the name of an existing discrete attribute map.ATTRMAP调用上面discreteattrmap起的名字

通过这3个选项,DISCRETEATTRVAR完成了承上启下的作用,它自己本身有名字了(ATTRVAR),便于SAS调用;又告诉了SAS哪个变量用于属性展示,又把属性和数据集变量联系起来。

所以到后面我们直接用group=XXX直接调用我们设定的属性就可以了。

discreteattrmap和discreteattrvar还有很多选项和一些需要注意的地方,这个你们自己去查SAShelp吧,我在这里就不多讲了。

二:合并标签

如图中所示,我们展示图例的时候,只有横线,如果我们还想把加号合并到横线上怎么实现呢?很简单,一个MERGEDLEGEND选项就够了

MERGEDLEGEND 'step' 'scatter'/location= inside halign=right valign=bottom valueattrs=(size=8) border= yes across=1;

把你要合并标签的引用名称都放在一起就可以实现了,所以也不多讲了

代码在另一个地方

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容