1、横坐标 study day,纵坐标 subject,顺序按照泳道从长到短排列。
2、proc template或者proc sgplot都可产生,此处主要用到 highlowplot 语句。high用来定义在x轴的结束时间,low用来定义x轴的开始时间(一般为1,默认从Day1开始)。y轴一般是根据排序自定义的变量(下文中使用yaxia1)。
注意:由于我是想从长到短排列,那对于y轴的值需要自己定义format。例如yaxia1=1对应的人时间最短,yaxia1=20对应的人时间最长。
proc template;
define statgraph swim;
begingraph / designwidth=2000px designheight=1400px border= false;
entrytitle halign=left ""/ textattrs=(size=8 family="Simsun" weight=GraphLabelText:FontWeight) ;
layout overlay / yaxisopts=(offsetmin=0.02
linearopts=(viewmax=20 viewmin=0 tickvaluesequence=(start=1 end=20 increment=1))
label="Subjects" labelattrs=(size=10) griddisplay=off
tickvalueattrs=(size=10)
display=(line label ticks tickvalues))
xaxisopts=(offsetmin=0.02
linearopts=(viewmax=421 viewmin=1
tickvaluesequence=(start=1 end=421 increment=63))
label='Study Day' labelattrs=(size=10) griddisplay=off
tickvalueattrs=(size=10)
display=(tickvalues ticks label line) );
highlowplot y=yaxis1 high=xen low=xst / group=trt01an grouporder=ascending name='d' outlineattrs=(pattern=solid) display=(outline fill )
type=bar barwidth=0.7;
scatterplot y=yaxis1 x=pr / markerattrs=(size=10 symbol=diamondFilled color=black) name="e" legendlabel='PR';
scatterplot y=yaxis1 x=sd / markerattrs=(size=10 symbol=SquareFilled color=blue) name="f" legendlabel='SD';
scatterplot y=yaxis1 x=pd / markerattrs=(size=10 symbol=trianglefilled color=red) name="g" legendlabel='PD';
discretelegend 'e' 'f' 'g' / titleattrs=(size=8) valueattrs=(size=8) border=false location=inside valign=0.98 halign=0.98 across=1;
discretelegend "d" / across=9 titleattrs=(size=8) valueattrs=(size=10) border=false location=outside;
endlayout;
endgraph;
end;
run;