proc gplot超过255个科目的Spaghetti Plot

时间:2017-03-01 18:28:47

标签: graph sas

嗨我在尝试制作意大利面条情节时有疑问。我不希望每个主题都有不同的符号或颜色。我只需要它们每个都有一个黑色的分段线。我已经能够用更少的主题成功地完成它,只需为每个人创建相同的符号语句并使用gplot,但是当我使用超过255个主题时,SAS抱怨我不能超过255个符号。有没有办法做到这一点?

data _null_; 
set ptdata&trtn. end=eof; 
retain patcount 0; 
by usubjid;
if first.usubjid then patcount+1; 
if last.usubjid then lastgfr='Y'; 
   call symput('sym'||trim(left(patcount)), 
   'symbol'||trim(left(patcount)) 
   || ' '|| 'c=black'|| ' '||'v=Dot'||' ' 
   || 'i=join'|| ' ' || 'line=1' || 'width=1' ||';');
if eof then call symput('total',patcount); 
run;

%macro symbol;
%do j=1 %to &total; 
&&sym&j 
%end; 
%mend symbol;

%symbol

proc gplot data = ptdata&trtn. ;
  plot change_since_bl*FUPTIME=usubjid /haxis=axis3 vaxis=axis4 href=0 nolegend;
  format change_since_bl 8. ;*/
run ;

1 个答案:

答案 0 :(得分:1)

我会使用PROC SGPLOT,它不像GPLOT那样限于255,而且更容易使用。

试试这个:

data test;
do person=1 to 256;
    value = 100;
    do time=0 to 10;
        value = value + rannor(1);
        output;
    end;
end;
run;

proc sgplot data=test noautolegend;
series x=time y=value / group=person lineattrs=(color=black pattern=dash) ;
run; 

我认为这就是你要找的东西。

enter image description here