前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAS-临床试验程序绘图合集(一)

SAS-临床试验程序绘图合集(一)

作者头像
Setup
发布2020-05-22 11:06:33
5K0
发布2020-05-22 11:06:33
举报
文章被收录于专栏:SAS程序分享号号号

年前,小编打算写一套SAS绘图的宏程序,于是在朋友圈发了个“调查问卷”,询问了大家临床编程中常遇见的图形。经过漫长的积累与等待(究其原因还是太懒了),本文孕育与诞生了,小编将在本文及后续推文中汇总并分享一些常见的SAS绘图程序及技巧。

图形类型

折线图

散点图

条形图

箱体图

蜘蛛图

泳道图

瀑布图

生存图

小编最初的想法是将这些图形的绘制写成宏,然后分享/出售

,日前,看到了《药物临床试验数据递交指导原则(征求意见稿).doc》正文114行的“尤其应避免大型宏程序的嵌套”,所以写宏的计划暂时夭折了。所以呀,今天要分享的内容不含大型宏程序。

折线图

首先是最基础的折线图,折线图的应有也是十分广泛的,譬如:药时曲线等均是临床试验中折线图绘制的典型例子。关于这部分小编也是在历史文章写过的,如有兴趣可在本文阅读完后,在此点击进行阅读(药时(一)药时(二)),当然这是几年前的文章了,文中不乏有漏洞或程序冗杂之处。如有需要小编后来多次更新的最新相关程序,可私下联系。

SGPLOT

GTL

代码语言:javascript
复制

proc format ;
    value GROUPfmt 1='高剂量组' 2='中剂量组' 3='低剂量组' 4='安慰剂组';
run;


data adrs;
  do i=1 to 20;
    *模拟受试者;
    SUBJID=put(i,z3.);
     *模拟组别;
     ARMCD=mod(i,4)+1;
     ARM=put(ARMCD,GROUPfmt.);
     do DY=1 to 4;  
       aval=int(ranuni(1)*20)*int(ranuni(0)*10);
      output;
      end;
    end;
run;


proc sort data=adrs  out=adrs ;by   ARMCD  ARM DY  ; ;quit;

proc means data = adrs noprint alpha=0.05;
  by  ARMCD  ARM DY;
  var aval;                
  output out=_runtemp_s1   n = n  mean = mean q1=q1 q3=q3 std=std median=median  nmiss=nmiss min=min max=max lclm=lclm_ uclm=uclm_;
run;



ods rtf file="&runsetup.\折线图测试结果.rtf" style=threelines_setup startpage=yes;
ODS graphics on /width=18cm height=10cm noborder ;
ods  rtf nogtitle nogfootnote;/*避免title footnote出现在title中*/
title1 j= l "官网:https://www.sas-pharma.com" j= r "作者:Setup";
title2 j= l"微信号:xiaocgn" j= r"日期:&date1.";
footnote j= l "折线图(V1.0)" j= r "欢迎关注公众号";

data Setup;
    length value FillColor LineColor MARKERCOLOR MARKERSYMBOL  LINEPATTERN $30;
    Id='Setup'; Value="1"; FillColor='Red'; LineColor='Red';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Red'; output;
    Id='Setup'; Value="2"; FillColor='blue'; LineColor='blue'; LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='blue';  output;
    Id='Setup'; Value="3"; FillColor='Green'; LineColor='Green';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Green';  output;
    Id='Setup'; Value="4"; FillColor='Orange'; LineColor='Orange';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Orange';  output;
run;

*图中画标题:legenditem;


 proc sgplot data=_runtemp_s1  dattrmap=Setup;
        series  x=DY y=mean/ group=ARMCD  name='L2' lineattrs=(thickness=1)  markers ATTRID=Setup ;
        legenditem type=markerline   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=red symbol=circlefilled) 
        lineattrs=(color=red)     label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=blue symbol=circlefilled) 
        lineattrs=(color=blue)     label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=green symbol=circlefilled) 
        lineattrs=(color=green)      label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=Orange symbol=circlefilled) 
        lineattrs=(color=Orange)  label="安慰剂组"   outlineattrs=(color=white);

      /*设置:设置图例*/
        keylegend 'S1' 'S2' 'S3' 'S4'/ title=""  location= inside position=TOPRIGHT  noborder  across=1
                titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                valueattrs=(color=black  family="Times New Roman/宋体" size=10)  sortorder=REVERSEAUTO ;

         legenditem type=TEXT   name="S5" /TEXT="Figure xxx.xxx.x.x Series Plot  " TEXTATTRS=(color=black  family="Times New Roman/宋体" size=10);
        keylegend  'S5'  / title=" "  location= outside position=top  noborder  down=1
                              titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                              valueattrs=(color=black  family="Times New Roman/宋体" size=10)   ;
;
      /*设置:坐标*/
        xaxis label="X轴"    values=( 1 2 3 4) valuesdisplay=("基线" "治疗第2周" "治疗第4周" "随访期")
                    valueattrs=(color=black  family="times new roman/宋体" size=10)
                    labelattrs=(color=black  family="Times New Roman/宋体" size=10)  fitpolicy=none valuesrotate=diagonal2 ;
                    *刻度值旋转:ROTATE 旋转反向:VALUESROTATE:diagonal | diagonal2 | vertical ;


        yaxis label="Y轴"   values=(0 to 120 by 20)
                    valueattrs=(color=black  family="times new roman/宋体" size=10)
                    labelattrs=(color=black  family="Times New Roman/宋体" size=10) fitpolicy=none;
run;


ods graphics /outputfmt=JPEG;



proc template;
  define statgraph setup;
    begingraph/ border=false backgroundcolor=white;
          entryfootnote  halign=center  "Figure xxx.xxx.x.x Series Plot   "/ textattrs=(color=black  family="times new roman/宋体" size=7);
      /*   entrytitle  halign=left  "&&ffootnote&ms." / textattrs=(color=black  family="times new roman/宋体" size=7);*/
        discreteattrmap name="temp1" / ignorecase=true;
          value "1" /markerattrs=GraphData1(color=red  symbol=circlefilled  ) lineattrs=GraphData1(color=red pattern=solid ) fillattrs=GraphData1(color=red );
          value "2" /markerattrs=GraphData1(color=blue  symbol=circlefilled  ) lineattrs=GraphData1(color=blue pattern=solid) fillattrs=GraphData1(color=blue  );
          value "3" /markerattrs=GraphData1(color=green  symbol=circlefilled) lineattrs=GraphData1(color=green pattern=solid) fillattrs=GraphData1(color=green );
          value "4" /markerattrs=GraphData1(color=Orange  symbol=circlefilled) lineattrs=GraphData1(color=Orange pattern=solid) fillattrs=GraphData1(color=Orange );
        enddiscreteattrmap;

        discreteattrvar attrvar=markers1 var=ARMCD  attrmap="temp1";
        legenditem type=markerline   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=red symbol=circlefilled) 
        lineattrs=(color=red)     label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=blue symbol=circlefilled) 
        lineattrs=(color=blue)     label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=green symbol=circlefilled) 
        lineattrs=(color=green)      label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=Orange symbol=circlefilled) 
        lineattrs=(color=Orange)  label="安慰剂组"   outlineattrs=(color=white);

      layout overlay //* walldisplay=none*/ cycleattrs=true  
      yaxisopts=(gridDisplay=off LABEL="Y轴"  labelattrs=(size=7pt   family="Times New Roman/宋体")  
      LABELSPLITCHAR="$" LABELFITPOLICY=SPLITALWAYS tickvalueattrs=( size=7pt  family="Times New Roman/宋体") 
      linearopts=(tickvaluelist=(0 20 40 60 80 100 120)  tickvaluefitpolicy=none  tickvaluepriority=true ))
      xaxisopts=(display=(ticks tickvalues line label) gridDisplay=off label="X轴"  labelattrs=(size=7pt   family="Times New Roman/宋体")  
      tickvalueattrs=( size=7pt  family="Times New Roman/宋体") linearopts=(tickvaluelist=( 1 2 3 4 ) tickdisplaylist=("基线" "治疗第2周" "治疗第4周" "随访期")  tickvaluefitpolicy=none  tickvaluepriority=true ))
;
      seriesplot x=DY y=mean/  group=markers1  name="series1" lineattrs=(thickness=1) display=(markers)
      markercolorgroup=markers1 markerattrs=(symbol=circlefilled)
      linecolorgroup=markers1  lineattrs=(pattern=solid) ;
  
          discretelegend  "S1" "S2" "S3"  'S4'/  border=false  location=inside halign=right valign=top across=1
                title="" titleattrs=GraphValueText(color=black  family="Times New Roman/宋体" size=10pt);
    endlayout;
  endgraph;
  end;
run;


proc sgrender data=_runtemp_s1 template=setup;
run; 

;
;
ods rtf close;

代码如上,分别采取PROC SGPLOTGTL俩种绘图方式。数据均是模拟随机产生的。关于代码中的语法,此处不做介绍,可私下与小编交流或查看SAS帮助文档。

代码下载链接:

https://www.sas-pharma.com/code/seriesplot.txt

散点图

散点图也是基础图形之一,在临床统计绘图编程中,散点图常与其他图形一起组成复合图形,譬如:泳道图上的标记符等,相关的例子很多。

SGPLOT

GTL

代码语言:javascript
复制
proc format ;
    value GROUPfmt 1='高剂量组' 2='中剂量组' 3='低剂量组' 4='安慰剂组';
run;


data adrs;
  do i=1 to 20;
    *模拟受试者;
    SUBJID=put(i,z3.);
     *模拟组别;
     ARMCD=mod(i,4)+1;
     ARM=put(ARMCD,GROUPfmt.);
     do DY=1 to 4;  
       aval=int(ranuni(1)*20)*int(ranuni(0)*10);
      output;
      end;
    end;
run;


proc sort data=adrs  out=adrs ;by   ARMCD  ARM DY  ; ;quit;

proc means data = adrs noprint alpha=0.05;
  by  ARMCD  ARM DY;
  var aval;                
  output out=_runtemp_s1   n = n  mean = mean q1=q1 q3=q3 std=std median=median  nmiss=nmiss min=min max=max lclm=lclm_ uclm=uclm_;
run;

data _runtemp_s1;
  set _runtemp_s1;
  upperstd=mean+std;
  lowerstd=mean-std;
run;


ods rtf file="&runsetup.\散点图测试结果.rtf" style=threelines_setup startpage=yes;
ODS graphics on /width=18cm height=10cm noborder ;
ods  rtf nogtitle nogfootnote;/*避免title footnote出现在title中*/
title1 j= l "官网:https://www.sas-pharma.com" j= r "作者:Setup";
title2 j= l"微信号:xiaocgn" j= r"日期:&date1.";
footnote j= l "散点图(V1.0)" j= r "欢迎关注公众号";

data Setup;
    length value FillColor LineColor MARKERCOLOR MARKERSYMBOL  LINEPATTERN $30;
    Id='Setup'; Value="1"; FillColor='Red'; LineColor='Red';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='triangleright';  MARKERCOLOR='Red'; output;
    Id='Setup'; Value="2"; FillColor='blue'; LineColor='blue'; LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='triangle';  MARKERCOLOR='blue';  output;
    Id='Setup'; Value="3"; FillColor='Green'; LineColor='Green';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='triangledown';  MARKERCOLOR='Green';  output;
    Id='Setup'; Value="4"; FillColor='Orange'; LineColor='Orange';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='triangleleft';  MARKERCOLOR='Orange';  output;
run;
*图中画标题:legenditem;


 proc sgplot data=_runtemp_s1  dattrmap=Setup;
         scatter  x=DY y=mean/ group=ARMCD  yerrorupper =upperstd  yerrorlower=lowerstd  ATTRID=Setup;

        legenditem type=marker   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=red symbol=triangleright) 
        lineattrs=(color=red)     label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=marker   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=blue symbol=triangle) 
        lineattrs=(color=blue)     label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=marker   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=green symbol=triangledown) 
        lineattrs=(color=green)      label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=marker   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=Orange symbol=triangleleft) 
        lineattrs=(color=Orange)  label="安慰剂组"   outlineattrs=(color=white);

      /*设置:设置图例*/
        keylegend 'S1' 'S2' 'S3' 'S4'/ title=""  location= inside position=TOPRIGHT  noborder  across=1
                titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                valueattrs=(color=black  family="Times New Roman/宋体" size=10)  sortorder=REVERSEAUTO ;

         legenditem type=TEXT   name="S5" /TEXT="Figure xxx.xxx.x.x scatter Plot  " TEXTATTRS=(color=black  family="Times New Roman/宋体" size=10);
        keylegend  'S5'  / title=" "  location= outside position=top  noborder  down=1
                              titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                              valueattrs=(color=black  family="Times New Roman/宋体" size=10)   ;
;
      /*设置:坐标*/
        xaxis label="X轴"    values=( 1 2 3 4) valuesdisplay=("基线" "治疗第2周" "治疗第4周" "随访期")
                    valueattrs=(color=black  family="times new roman/宋体" size=10)
                    labelattrs=(color=black  family="Times New Roman/宋体" size=10)  fitpolicy=none valuesrotate=diagonal2 ;
                    *刻度值旋转:ROTATE 旋转反向:VALUESROTATE:diagonal | diagonal2 | vertical ;


        yaxis label="Y轴"   values=(-40 to 140 by 20)
                    valueattrs=(color=black  family="times new roman/宋体" size=10)
                    labelattrs=(color=black  family="Times New Roman/宋体" size=10) fitpolicy=none;
run;


ods graphics /outputfmt=JPEG;



proc template;
  define statgraph setup;
    begingraph/ border=false backgroundcolor=white;
          entryfootnote  halign=center  "Figure xxx.xxx.x.x scatter Plot   "/ textattrs=(color=black  family="times new roman/宋体" size=7);
      /*   entrytitle  halign=left  "&&ffootnote&ms." / textattrs=(color=black  family="times new roman/宋体" size=7);*/
        discreteattrmap name="temp1" / ignorecase=true;
          value "1" /markerattrs=GraphData1(color=red  symbol=triangleright  ) lineattrs=GraphData1(color=red pattern=solid ) fillattrs=GraphData1(color=red );
          value "2" /markerattrs=GraphData1(color=blue  symbol=triangle  ) lineattrs=GraphData1(color=blue pattern=solid) fillattrs=GraphData1(color=blue  );
          value "3" /markerattrs=GraphData1(color=green  symbol=triangledown) lineattrs=GraphData1(color=green pattern=solid) fillattrs=GraphData1(color=green );
          value "4" /markerattrs=GraphData1(color=Orange  symbol=triangleleft) lineattrs=GraphData1(color=Orange pattern=solid) fillattrs=GraphData1(color=Orange );
        enddiscreteattrmap;

        discreteattrvar attrvar=markers1 var=ARMCD  attrmap="temp1";
        legenditem type=marker   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=red symbol=triangleright) 
        lineattrs=(color=red)     label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=marker   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=blue symbol=triangle) 
        lineattrs=(color=blue)     label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=marker   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=green symbol=triangledown) 
        lineattrs=(color=green)      label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=marker   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=Orange symbol=triangleleft) 
        lineattrs=(color=Orange)  label="安慰剂组"   outlineattrs=(color=white);

      layout overlay //* walldisplay=none*/ cycleattrs=true  
      yaxisopts=(gridDisplay=off LABEL="Y轴"  labelattrs=(size=7pt   family="Times New Roman/宋体")  
      LABELSPLITCHAR="$" LABELFITPOLICY=SPLITALWAYS tickvalueattrs=( size=7pt  family="Times New Roman/宋体") 
      linearopts=(tickvaluelist=(-40 -20 0 20 40 60 80 100 120 140)  tickvaluefitpolicy=none  tickvaluepriority=true ))
      xaxisopts=(display=(ticks tickvalues line label) gridDisplay=off label="X轴"  labelattrs=(size=7pt   family="Times New Roman/宋体")  
      tickvalueattrs=( size=7pt  family="Times New Roman/宋体") linearopts=(tickvaluelist=( 1 2 3 4 ) tickdisplaylist=("基线" "治疗第2周" "治疗第4周" "随访期")  tickvaluefitpolicy=none  tickvaluepriority=true ))
;
      scatterplot x=DY y=mean/  group=markers1 yerrorupper =upperstd  yerrorlower=lowerstd  ;
  
          discretelegend  "S1" "S2" "S3"  'S4'/  border=false  location=inside halign=right valign=top across=1
                title="" titleattrs=GraphValueText(color=black  family="Times New Roman/宋体" size=10pt);
    endlayout;
  endgraph;
  end;
run;


proc sgrender data=_runtemp_s1 template=setup;
run; 

;
;
ods rtf close;

代码如上,分别采取PROC SGPLOTGTL俩种绘图方式。数据均是模拟随机产生的。关于代码中的语法,此处不做介绍,可私下与小编交流或查看SAS帮助文档。

代码下载链接:

https://www.sas-pharma.com/code/scatterplot.txt

条形图

关于条形小编以前也发过相关推送,譬如:譬如堆积条形图的绘制,如有兴趣可在本文阅读完后,在此点击进行阅读(堆积条形图的绘制),条形图也是基础图形之一,可与其他图形组合使用,生成瀑布图、泳道图等等。

SGPLOT

GTL

代码语言:javascript
复制


proc format ;
    value GROUPfmt 1='高剂量组' 2='中剂量组' 3='低剂量组' 4='安慰剂组';
run;



data adrs;
  do i=1 to 20;
    *模拟受试者;
    SUBJID=put(i,z3.);
     *模拟组别;
     ARMCD=mod(i,4)+1;
     ARM=put(ARMCD,GROUPfmt.);
     *模拟研究时长;
     DY01=ranuni(0)*20;
     output;
    end;
  drop I;
run;



data _null_;
  call symput("date",left(put("&sysdate"d,yymmdd10.)));
  call symput("date1",left(compress(put("&sysdate"d,yymmdd10.),"-"," ")));
run;

ods rtf file="&runsetup.\条形测试结果.rtf" style=threelines_setup startpage=no;
ODS graphics on /width=18cm height=10cm noborder ;
ods  rtf nogtitle nogfootnote;/*避免title footnote出现在title中*/

title1 j= l "官网:https://www.sas-pharma.com" j= r "作者:Setup";
title2 j= l"微信号:xiaocgn" j= r"日期:&date1.";
 footnote j= l "条形图(V1.0)" j= r "欢迎关注公众号";
*  DATTRMAP 数据集变量介绍
  FILLCOLOR:填充颜色
  FILLTRANSPARENCY:透明度
  ID :指定标识 与plot语句中的 attrid=参数对应
  LINECOLOR :线条颜色
  LINEPATTERN:线条类型
  LINETHICKNESS:线条粗细
  MARKERCOLOR:标记符号颜色
  MARKERSIZE:标记符号大小
  MARKERSYMBOL:标记符号名称
  MARKERTRANSPARENCY:标记符号透明度
  VALUE:指定对应group组别的值;



data Setup;
    length value FillColor LineColor $30;
    Id='Setup'; Value="1"; FillColor='Red'; LineColor='Black'; output;
    Id='Setup'; Value="2"; FillColor='blue'; LineColor='Black'; output;
    Id='Setup'; Value="3"; FillColor='Green'; LineColor='Black'; output;
    Id='Setup'; Value="4"; FillColor='Orange'; LineColor='Black'; output;
run;

*图中画标题:legenditem;


proc sort data=adrs  out= adrs sortseq=linguistic(numeric_collation=on);by subjid ;quit;
 proc sgplot data=adrs  noborder  dattrmap=Setup;
          hbarparm    category=subjid response=DY01  / group=ARMCD GROUPORDER=DATA    name='L2' nooutline transparency=0.3  attrid=Setup ;



        legenditem type=FILL   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) 
        lineattrs=(color=red)    FILLATTRS=(color=red transparency = 0.3)  label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=FILL   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) 
        lineattrs=(color=blue)    FILLATTRS=(color=blue transparency = 0.3)  label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=FILL   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) 
        lineattrs=(color=green)    FILLATTRS=(color=green transparency = 0.3)  label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=FILL   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) 
        lineattrs=(color=Orange)    FILLATTRS=(color=Orange transparency = 0.3)  label="安慰剂组"   outlineattrs=(color=white);
/*设置:设置图例*/
      keylegend  'S1' 'S2' 'S3' 'S4'   / title=""  location= outside position=BOTTOM  noborder  down=4
                        titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                        valueattrs=(color=black  family="Times New Roman/宋体" size=10)   ;

        legenditem type=TEXT   name="S10" /TEXT="Figure xxx.xxx.x.x barchart Plot  " TEXTATTRS=(color=black  family="Times New Roman/宋体" size=10);

         /*在图中绘制标题:*/
        keylegend  'S10'  / title=" "  location= outside position=top  noborder  down=1
                              titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                              valueattrs=(color=black  family="Times New Roman/宋体" size=10)   ;


/*设置:坐标*/
  xaxis label="Months since first dose of study drug"    values=(0  to 26 by 2)  
              valueattrs=(color=black  family="times new roman/宋体" size=10)
              labelattrs=(color=black  family="Times New Roman/宋体" size=10)  fitpolicy=none valuesrotate=diagonal2 ;
              *刻度值旋转:ROTATE 旋转反向:VALUESROTATE:diagonal | diagonal2 | vertical ;


  yaxis display=(noticks noline nolabel) reverse
              valueattrs=(color=black  family="times new roman/宋体" size=10)
              labelattrs=(color=black  family="Times New Roman/宋体" size=10) fitpolicy=none;
run;
proc template;
  define statgraph setup;
  begingraph / backgroundcolor=CXFFFFFF dataskin=none;
  entrytitle halign=center "Figure xxx.xxx.x.x barchart Plot" /textattrs=(color=black  family="Times New Roman/宋体" size=9);
        discreteattrmap name="temp1" / ignorecase=true;
          value "1" /markerattrs=GraphData1(color=red  symbol=circlefilled  ) lineattrs=GraphData1(color=red pattern=solid ) fillattrs=GraphData1(color=red );
          value "2" /markerattrs=GraphData1(color=blue  symbol=circlefilled  ) lineattrs=GraphData1(color=blue pattern=solid) fillattrs=GraphData1(color=blue  );
          value "3" /markerattrs=GraphData1(color=green  symbol=circlefilled) lineattrs=GraphData1(color=green pattern=solid) fillattrs=GraphData1(color=green );
          value "4" /markerattrs=GraphData1(color=Orange  symbol=circlefilled) lineattrs=GraphData1(color=Orange pattern=solid) fillattrs=GraphData1(color=Orange );
        enddiscreteattrmap;

        discreteattrvar attrvar=markers1 var=ARMCD  attrmap="temp1";
        legenditem type=FILL   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) 
        lineattrs=(color=red)    FILLATTRS=(color=red )  label="高剂量组"   outlineattrs=(color=white); 
        legenditem type=FILL   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) 
        lineattrs=(color=blue)    FILLATTRS=(color=blue )  label="中剂量组"   outlineattrs=(color=white); 
        legenditem type=FILL   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) 
        lineattrs=(color=green)    FILLATTRS=(color=green )  label="低剂量组"   outlineattrs=(color=white); 
        legenditem type=FILL   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) 
        lineattrs=(color=Orange)    FILLATTRS=(color=Orange )  label="安慰剂组"   outlineattrs=(color=white); 


  

        layout overlay / wallcolor=white walldisplay=none 
            xaxisopts=(  display=(  TICKS  TICKVALUES line LABEL )  griddisplay=off label="Months since first dose of study drug"
            linearopts=( minorgrid=off minorticks=off tickvaluepriority=TRUE tickvalueformat=BEST6. tickvaluelist=(0 2 4 6 8 10 12 14 16 18 20 22 24 26) ))
            yaxisopts=(  display=( TICKVALUES)   discreteopts=( tickvaluefitpolicy=none));
                barchart category=SUBJID response=DY01 / group=markers1 name='L1' datatransparency=0.3 
            display=(FILL) stat=MEAN barlabel=false orient=horizontal barwidth=0.4 groupdisplay=Stack clusterwidth=0.1;


                discretelegend  'S1' 'S2' 'S3' 'S4'   / 
            autoalign=(topright)  opaque=TRUE border=false displayclipped=true across=4  order=columnmajor outerpad=auto 
              TITLEBORDER=FALSE
            location=inside;
        endlayout;
  endgraph;
  end;
run;



 proc sgrender data=adrs template=setup;
run; 

;

ods rtf close;

代码如上,分别采取PROC SGPLOT GTL俩种绘图方式。数据均是模拟随机产生的。关于代码中的语法,此处不做介绍,可私下与小编交流或查看SAS帮助文档。

代码下载链接:

https://www.sas-pharma.com/code/barchart.txt

箱体图

箱式图是临床统计编程中常见图形之一,也是很灵活多变的,譬如:描点、连线等等。

SGPLOT

GTL

代码语言:javascript
复制


proc format ;
    value GROUPfmt 1='高剂量组' 2='中剂量组' 3='低剂量组' 4='安慰剂组';
    value vist 1='基线' 2='治疗第2周' 3='治疗第4周' 4='随访期';
run;


data adrs;
  do i=1 to 20;
    *模拟受试者;
    SUBJID=put(i,z3.);
     *模拟组别;
     ARMCD=mod(i,4)+1;
     ARM=put(ARMCD,GROUPfmt.);
     do DY=1 to 4;  
       aval=int(ranuni(1)*20)*int(ranuni(0)*10);
      output;
      end;
    end;
run;


proc sort data=adrs  out=adrs ;by   ARMCD  ARM DY  ; ;quit;
/**/
/*proc means data = adrs noprint alpha=0.05;*/
/*  by  ARMCD  ARM DY;*/
/*  var aval;                */
/*  output out=_runtemp_s1   n = n  mean = mean q1=q1 q3=q3 std=std median=median  nmiss=nmiss min=min max=max lclm=lclm_ uclm=uclm_;*/
/*run;*/
/**/
/*data _runtemp_s1;*/
/*  set _runtemp_s1;*/
/*  upperstd=mean+std;*/
/*  lowerstd=mean-std;*/
/*run;*/


ods rtf file="&runsetup.\箱式图测试结果.rtf" style=threelines_setup startpage=yes;
ODS graphics on /width=18cm height=10cm noborder ;
ods  rtf nogtitle nogfootnote;/*避免title footnote出现在title中*/
title1 j= l "官网:https://www.sas-pharma.com" j= r "作者:Setup";
title2 j= l"微信号:xiaocgn" j= r"日期:&date1.";
footnote j= l "箱式图(V1.0)" j= r "欢迎关注公众号";

data Setup;
    length value FillColor LineColor MARKERCOLOR MARKERSYMBOL  LINEPATTERN $30;
    Id='Setup'; Value="1"; FillColor='Red'; LineColor='Red';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Red'; output;
    Id='Setup'; Value="2"; FillColor='blue'; LineColor='blue'; LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='blue';  output;
    Id='Setup'; Value="3"; FillColor='Green'; LineColor='Green';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Green';  output;
    Id='Setup'; Value="4"; FillColor='Orange'; LineColor='Orange';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Orange';  output;
run;
*图中画标题:legenditem;



 proc sgplot data=adrs  dattrmap=Setup;
        vbox  AVAL/ category=DY  name='L2' boxwidth=0.4 nofill group=ARMCD ATTRID=Setup
/*        datalabel=AVAL  datalabelattrs=(family="Times New Roman/宋体" size=6)  */
        connect=mean  connectattrs=( Pattern=solid Thickness=1); ;

        legenditem type=markerline   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=red symbol=circlefilled) 
        lineattrs=(color=red)     label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=blue symbol=circlefilled) 
        lineattrs=(color=blue)     label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=green symbol=circlefilled) 
        lineattrs=(color=green)      label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=Orange symbol=circlefilled) 
        lineattrs=(color=Orange)  label="安慰剂组"   outlineattrs=(color=white);

      /*设置:设置图例*/
        keylegend 'S1' 'S2' 'S3' 'S4'/ title=""  location= inside position=TOPRIGHT  noborder  across=1
                titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                valueattrs=(color=black  family="Times New Roman/宋体" size=10)  sortorder=REVERSEAUTO ;

         legenditem type=TEXT   name="S5" /TEXT="Figure xxx.xxx.x.x vbox Plot  " TEXTATTRS=(color=black  family="Times New Roman/宋体" size=10);
        keylegend  'S5'  / title=" "  location= outside position=top  noborder  down=1
                              titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                              valueattrs=(color=black  family="Times New Roman/宋体" size=10)   ;
;
      /*设置:坐标*/
        xaxis label="X轴"    values=( 1 2 3 4) valuesdisplay=("基线" "治疗第2周" "治疗第4周" "随访期")
                    valueattrs=(color=black  family="times new roman/宋体" size=10)
                    labelattrs=(color=black  family="Times New Roman/宋体" size=10)  fitpolicy=none valuesrotate=diagonal2 ;
                    *刻度值旋转:ROTATE 旋转反向:VALUESROTATE:diagonal | diagonal2 | vertical ;


        yaxis label="Y轴"   values=(-20 to 180 by 20)
                    valueattrs=(color=black  family="times new roman/宋体" size=10)
                    labelattrs=(color=black  family="Times New Roman/宋体" size=10) fitpolicy=none;
run;


ods graphics /outputfmt=JPEG;



proc template;
  define statgraph setup;
    begingraph/ border=false backgroundcolor=white;
          entryfootnote  halign=center  "Figure xxx.xxx.x.x boxplot Plot   "/ textattrs=(color=black  family="times new roman/宋体" size=7);
      /*   entrytitle  halign=left  "&&ffootnote&ms." / textattrs=(color=black  family="times new roman/宋体" size=7);*/
        discreteattrmap name="temp1" / ignorecase=true;
          value "1" /markerattrs=GraphData1(color=red  symbol=circlefilled  ) lineattrs=GraphData1(color=red pattern=solid ) fillattrs=GraphData1(color=red );
          value "2" /markerattrs=GraphData1(color=blue  symbol=circlefilled  ) lineattrs=GraphData1(color=blue pattern=solid) fillattrs=GraphData1(color=blue  );
          value "3" /markerattrs=GraphData1(color=green  symbol=circlefilled) lineattrs=GraphData1(color=green pattern=solid) fillattrs=GraphData1(color=green );
          value "4" /markerattrs=GraphData1(color=Orange  symbol=circlefilled) lineattrs=GraphData1(color=Orange pattern=solid) fillattrs=GraphData1(color=Orange );
        enddiscreteattrmap;

        discreteattrvar attrvar=markers1 var=ARMCD  attrmap="temp1";
        legenditem type=markerline   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=red symbol=circlefilled) 
        lineattrs=(color=red)     label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=blue symbol=circlefilled) 
        lineattrs=(color=blue)     label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=green symbol=circlefilled) 
        lineattrs=(color=green)      label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=Orange symbol=circlefilled) 
        lineattrs=(color=Orange)  label="安慰剂组"   outlineattrs=(color=white);

      layout overlay //* walldisplay=none*/ cycleattrs=true  
      yaxisopts=(gridDisplay=off LABEL="Y轴"  labelattrs=(size=7pt   family="Times New Roman/宋体")  
      LABELSPLITCHAR="$" LABELFITPOLICY=SPLITALWAYS tickvalueattrs=( size=7pt  family="Times New Roman/宋体") 
      linearopts=(tickvaluelist=(-20 0 20 40 60 80 100 120 140 160 180)  tickvaluefitpolicy=none  tickvaluepriority=true ))
      xaxisopts=(display=(ticks tickvalues line label) gridDisplay=off label="X轴"  labelattrs=(size=7pt   family="Times New Roman/宋体")  
      tickvalueattrs=( size=7pt  family="Times New Roman/宋体") linearopts=(tickvaluelist=( 1 2 3 4 )  tickdisplaylist=("基线" "治疗第2周" "治疗第4周" "随访期")  tickvaluefitpolicy=none  tickvaluepriority=true ))
;  
        boxplot x=DY y=AVAL/ GROUP=markers1 groupdisplay=Cluster
      connect=mean  connectattrs=( Pattern=solid Thickness=1) 
      display=( mean outliers caps  connect ) ;


          discretelegend  "S1" "S2" "S3"  'S4'/  border=false  location=inside halign=right valign=top across=1
                title="" titleattrs=GraphValueText(color=black  family="Times New Roman/宋体" size=10pt);
    endlayout;
  endgraph;
  end;
run;


proc sgrender data=adrs template=setup;
run; 

;
;
ods rtf close;

代码如上,分别采取PROC SGPLOTGTL俩种绘图方式。数据均是模拟随机产生的。关于代码中的语法,此处不做介绍,可私下与小编交流或查看SAS帮助文档。

代码下载链接:

https://www.sas-pharma.com/code/boxplot.txt

蜘蛛图

近年来,肿瘤类项目很热门,随之与肿瘤相关的图形也是常常在编程中语句,譬如:蜘蛛图、瀑布图、泳道图与生存图等,首先来看看蜘蛛图的绘制,通常用来描述靶病灶随时间变化而变化的率。

SGPLOT

GTL

代码语言:javascript
复制


proc format ;
    value GROUPfmt 1='高剂量组' 2='中剂量组' 3='低剂量组' 4='安慰剂组';
run;


*蜘蛛图
各时点肿瘤大小变化率
衍生DY  PCHG;


data adrs;
  do i=1 to 20;
    *模拟受试者;
    SUBJID=put(i,z3.);
     *模拟组别;
     ARMCD=mod(i,4)+1;
     ARM=put(ARMCD,GROUPfmt.);
     *模拟研究时长;
     do DY=0 to int(ranuni(1)*13);
       *模拟变化率;
  
       pchg=ranuni(int(ranuni(1)*13))*ifn(ranuni(0)<0.5,1,-1)*100;
          if DY=0 then pchg=0;
      output;
      end;
     end;
  drop I;
run;



data _null_;
  call symput("date",left(put("&sysdate"d,yymmdd10.)));
  call symput("date1",left(compress(put("&sysdate"d,yymmdd10.),"-"," ")));
run;

*  DATTRMAP 数据集变量介绍
  FILLCOLOR:填充颜色
  FILLTRANSPARENCY: 透明度
  ID :指定标识 与plot语句中的 attrid=参数对应
  LINECOLOR :线条颜色
  LINEPATTERN:线条类型
  LINETHICKNESS:线条粗细
  MARKERCOLOR:标记符号颜色
  MARKERSIZE:标记符号大小
  MARKERSYMBOL:标记符号名称
  MARKERTRANSPARENCY:标记符号透明度
  VALUE:指定对应group组别的值;




ods rtf file="&runsetup.\蜘蛛图测试结果.rtf" style=threelines_setup startpage=no;
ODS graphics on /width=18cm height=10cm noborder ;
ods  rtf nogtitle nogfootnote;/*避免title footnote出现在title中*/

title1 j= l "官网:https://www.sas-pharma.com" j= r "作者:Setup";
title2 j= l"微信号:xiaocgn" j= r"日期:&date1.";
 footnote j= l "蜘蛛图(V1.0)" j= r "欢迎关注公众号";

data Setup;
    length value FillColor LineColor MARKERCOLOR MARKERSYMBOL  LINEPATTERN $30;
    Id='Setup'; Value="1"; FillColor='Red'; LineColor='Red';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Red'; output;
    Id='Setup'; Value="2"; FillColor='blue'; LineColor='blue'; LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='blue';  output;
    Id='Setup'; Value="3"; FillColor='Green'; LineColor='Green';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Green';  output;
    Id='Setup'; Value="4"; FillColor='Orange'; LineColor='Orange';LINEPATTERN='solid';LINETHICKNESS=1;MARKERSYMBOL='circlefilled';  MARKERCOLOR='Orange';  output;
run;

*图中画标题:legenditem;


 proc sgplot data=adrs  dattrmap=Setup;

        series  x=DY y=PCHG/ group=SUBJID  name='L2' lineattrs=(thickness=1)  grouplc=ARMCD  GROUPLP=ARMCD GROUPMS=ARMCD groupmc=ARMCD  
        markers LCATTRID=Setup MCATTRID=Setup  LPATTRID=Setup MSATTRID=Setup ;
        legenditem type=markerline   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=red symbol=circlefilled) 
        lineattrs=(color=red)     label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=blue symbol=circlefilled) 
        lineattrs=(color=blue)     label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=green symbol=circlefilled) 
        lineattrs=(color=green)      label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=Orange symbol=circlefilled) 
        lineattrs=(color=Orange)  label="安慰剂组"   outlineattrs=(color=white);

      /*设置:设置图例*/
        keylegend 'S1' 'S2' 'S3' 'S4'/ title=""  location= inside position=TOPRIGHT  noborder  across=1
                titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                valueattrs=(color=black  family="Times New Roman/宋体" size=10)  sortorder=REVERSEAUTO ;

         legenditem type=TEXT   name="S5" /TEXT="Figure xxx.xxx.x.x Spider Plot  " TEXTATTRS=(color=black  family="Times New Roman/宋体" size=10);
        keylegend  'S5'  / title=" "  location= outside position=top  noborder  down=1
                              titleattrs=(color=black  family="Times New Roman/宋体" size=10)
                              valueattrs=(color=black  family="Times New Roman/宋体" size=10)   ;
;
      /*设置:坐标*/
        xaxis label="Months since first dose of study drug"    values=(0 1 2 3 4 5 6 7 8 9 10 11 12) 
                    valueattrs=(color=black  family="times new roman/宋体" size=10)
                    labelattrs=(color=black  family="Times New Roman/宋体" size=10)  fitpolicy=none valuesrotate=diagonal2 ;
                    *刻度值旋转:ROTATE 旋转反向:VALUESROTATE:diagonal | diagonal2 | vertical ;


        yaxis label="Precent Change from Baseline"   values=(-100 to 100 by 50)
                    valueattrs=(color=black  family="times new roman/宋体" size=10)
                    labelattrs=(color=black  family="Times New Roman/宋体" size=10) fitpolicy=none;
run;





proc template;
  define statgraph setup;
    begingraph;
      entrytitle  halign=center  "Figure xxx.xxx.x.x Spider Plot"/ 
    textattrs=(color=black  family="times new roman/宋体" size=10);
/*    entryfootnote halign=left  "&&ffootnote&ms." / textattrs=(color=black  family="times new roman/宋体" size=7);*/
        discreteattrmap name="temp1" / ignorecase=true;
          value "1" /markerattrs=GraphData1(color=red  symbol=circlefilled  ) lineattrs=GraphData1(color=red pattern=solid ) fillattrs=GraphData1(color=red );
          value "2" /markerattrs=GraphData1(color=blue  symbol=circlefilled  ) lineattrs=GraphData1(color=blue pattern=solid) fillattrs=GraphData1(color=blue  );
          value "3" /markerattrs=GraphData1(color=green  symbol=circlefilled) lineattrs=GraphData1(color=green pattern=solid) fillattrs=GraphData1(color=green );
          value "4" /markerattrs=GraphData1(color=Orange  symbol=circlefilled) lineattrs=GraphData1(color=Orange pattern=solid) fillattrs=GraphData1(color=Orange );
        enddiscreteattrmap;

        discreteattrvar attrvar=markers1 var=ARMCD  attrmap="temp1";
        legenditem type=markerline   name="S1" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=red symbol=circlefilled) 
        lineattrs=(color=red)     label="高剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S2" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=blue symbol=circlefilled) 
        lineattrs=(color=blue)     label="中剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S3" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=green symbol=circlefilled) 
        lineattrs=(color=green)      label="低剂量组"   outlineattrs=(color=white); 

        legenditem type=markerline   name="S4" / LABELATTRS=(color=black  family="Times New Roman/宋体" size=6) markerattrs=(color=Orange symbol=circlefilled) 
        lineattrs=(color=Orange)  label="安慰剂组"   outlineattrs=(color=white);

      layout overlay / cycleattrs=true  
      yaxisopts=(gridDisplay=off LABEL="Precent Change $ from Baseline"  labelattrs=(size=7pt   family="Times New Roman/宋体")  
      LABELSPLITCHAR="$" LABELFITPOLICY=SPLITALWAYS tickvalueattrs=( size=7pt  family="Times New Roman/宋体") 
      linearopts=(tickvaluelist=(-100 -50 0 50 100 150)  tickvaluefitpolicy=none  tickvaluepriority=true ))
      xaxisopts=(display=(ticks tickvalues line label) gridDisplay=off label="Months since first dose of study drug"  labelattrs=(size=7pt   family="Times New Roman/宋体")  
      tickvalueattrs=( size=7pt  family="Times New Roman/宋体") linearopts=(tickvaluelist=(0 1 2 3 4 5 6 7 8 9 10 11 12)  tickvaluefitpolicy=none  tickvaluepriority=true ))
;
      seriesplot x=DY y=PCHG/  group=subjid  name="series1" lineattrs=(thickness=1) display=(markers)
      markercolorgroup=markers1 markerattrs=(symbol=circlefilled)
      linecolorgroup=markers1  lineattrs=(pattern=solid) ;
  
          discretelegend  "S1" "S2" "S3"  'S4'/  border=false  location=inside halign=right valign=top across=1
                title="" titleattrs=GraphValueText(color=black  family="Times New Roman/宋体" size=10pt);
    endlayout;
  endgraph;
  end;
run;


 proc sgrender data=adrs template=setup;
run; 

;

ods rtf close;

代码如上,分别采取PROC SGPLOTGTL俩种绘图方式。数据均是模拟随机产生的。关于代码中的语法,此处不做介绍,可私下与小编交流或查看SAS帮助文档。

代码下载链接:

https://www.sas-pharma.com/code/spider.txt

瀑布图

上面介绍了蜘蛛图,下面来看看瀑布图的绘制,瀑布图通常用来看肿瘤的最佳疗效评价及相对基线变化情况。

SGPLOT

GTL

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

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

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

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

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