DISCRETEATTRMAP RANGEATTRMAP
group 值的显示属性是使用GRAPHDATA1 - GRAPHDATA12.
DISCRETEMAP自定义一个group值的属性。
codes中的selfName都是可以自定义名字。
data GTL_GS_Series_Dis_Attr_Map; format Date Date9.; do i=0 to 334 by 30; date='01jan2009'd+i; if mod (i, 30) =0 then freq=1; else freq=0; Drug='Drug A'; Val = 16+ 3*sin(i/90+0.5) + 1*sin(3*i/90+0.7); output; Drug='Drug C'; Val = 6+ 3*cos(i/90+0.5) + 1*sin(3*i/90+0.7); output; end; run; proc template; define statgraph a; dynamic _title; begingraph / subpixel = on; discreteattrmap name = 'selfName_1'; value "Drug A" / lineattrs = (color = red pattern = solid); value "Drug B" / lineattrs = (color = green pattern= solid); value "Drug C" / lineattrs = (color = blue pattern= solid); enddiscreteattrmap; discreteattrvar attrvar = selfName_2 var = drug attrmap = "selfName_1"; layout overlay /; seriesplot x = date y = val / group = selfName_2 name = "a" smoothconnect = true lineattrs = (thickness = 2); discretelegend "a" / type = line; endlayout; endgraph; end; run; proc sgrender data = GTL_GS_Series_Dis_Attr_Map template = a; run;
continuous legend分两种,一种是比较“硬性”的,一种是gradient的。
*continuous legend; data GTL_GS_HeatmapParm; drop pi val; pi=constant('Pi'); do x=1 to 20; do y=1 to 10; value=sin(x*pi/10) + cos(y*pi/10); val=ranuni(2); group=ifc(val < 0.5, 'M', 'F'); output; end; end; run; proc template; define statgraph b; begingraph / subpixel = on; rangeattrmap name = 'selfName_1'; range -2 - -1 / rangecolor = darkred; range -1 - -0 / rangecolor = red; range 0 - 1 / rangecolor = white; range 1 - 2 / rangecolor = blue; endrangeattrmap; rangeattrvar attrvar = selfName_2 var = value attrmap = "selfName_1"; layout overlay / ; heatmapparm x = x y = y colorresponse = selfName_2/ name = 'a'; continuouslegend "a" ; endlayout; endgraph; end; run; proc sgrender data = GTL_GS_HeatmapParm template = b; run; proc template; define statgraph c; begingraph / subpixel = on; rangeattrmap name = 'selfName_1'; range -2 - -1 / rangecolormodel = (darkred red); range -1 - -0 / rangecolormodel = (red white); range 0 - 1 / rangecolormodel = (white blue); range 1 - 2 / rangecolormodel = (blue darkblue); endrangeattrmap; rangeattrvar attrvar = selfName_2 var = value attrmap = "selfName_1"; layout overlay / ; heatmapparm x = x y = y colorresponse = selfName_2/ name = 'a'; continuouslegend "a" ; endlayout; endgraph; end; run; proc sgrender data = GTL_GS_HeatmapParm template = c; run;
本文来自博客园,作者:Iving,转载请注明原文链接:https://www.cnblogs.com/SAS-T/p/15374505.html