ww.783成人A片,精国产品一区二区三区A片,羞羞视频在线免费观看,亚洲精品在线观看视频,强伦轩一区二区三区四区播放方式

中文
關(guān)于我們
主營(yíng)業(yè)務(wù)
技術(shù)平臺(tái)
學(xué)術(shù)交流
新聞中心
加入我們
主營(yíng)業(yè)務(wù)
表單填寫
*姓名
*電話
*郵箱
*公司
*留言信息
熙寧小課-第117期 | PK統(tǒng)計(jì)分析——如何利用 SAS 制作多種樣式的藥時(shí)曲線圖?
發(fā)布作者:熙寧生物發(fā)布時(shí)間:2023-10-08

PART 01

藥時(shí)曲線


血藥濃度-時(shí)間曲線圖(藥時(shí)曲線)是藥物被給予機(jī)體后,以時(shí)間為橫坐標(biāo),藥物(及其代謝物)在血液中的濃度為縱坐標(biāo)所繪制的血藥濃度隨時(shí)間變化的曲線。


藥時(shí)曲線能反映體內(nèi)藥物濃度的經(jīng)時(shí)變化過程。為設(shè)計(jì)采血點(diǎn)、給藥方案提供依據(jù)。因此繪制藥時(shí)曲線是藥代動(dòng)力學(xué)分析中的一個(gè)重要部分。


根據(jù)CDE頒布的《藥物臨床試驗(yàn)數(shù)據(jù)遞交指導(dǎo)原則(試行)》中指出申報(bào)資料中的數(shù)據(jù)集通常采用SAS數(shù)據(jù)傳輸格式(SAS Transport Format,簡(jiǎn)稱XPT),由此可見SAS軟件在藥品臨床試驗(yàn)數(shù)據(jù)分析中是必不可缺。


其中SAS Graph Template Language (GTL)是繪制復(fù)雜圖形的強(qiáng)大工具。本文將使用SAS編程呈現(xiàn)幾種不同的藥時(shí)曲線樣式,探索如何繪制更協(xié)調(diào)更直觀的圖形,供大家共同學(xué)習(xí)討論!


PART 02

GTL原理


基于GTL的圖形由控制圖形格式和外觀,并指定變量角色的模板定義生成。圖形是通過關(guān)聯(lián)模板與數(shù)據(jù)源來(lái)呈現(xiàn)。


使用GTL創(chuàng)建一個(gè)圖形的基本步驟

1. 使用template過程定義STATGRAPH模板

2. 使用圖形模板語(yǔ)言來(lái)指定圖形的參數(shù)


上下左右滑動(dòng)閱覽

proc template;
      define statgraph tmp1;
            /*利用dynamic將template中的變量、標(biāo)簽等內(nèi)容開放出來(lái),便于修改dynamic的值來(lái)控制輸出,重復(fù)使用*/
            dynamic XAXISLABEL YVAR XVAR GRPVAR LENGEDTITLE TICKMIN TICKMAX;
            begingraph;
                  [自定義的圖形模板]
            endgraph;
      end; 
run;



3. 通過使用SGRENDER過程將數(shù)據(jù)與模板關(guān)聯(lián)



上下左右滑動(dòng)閱覽

proc sgrender data=[數(shù)據(jù)源] template=[GTL模板];
      /*不同表僅修改dynamic即可*/
      dynamic XAXISLABEL='Time(h)' YVAR='Mean' XVAR='ATPTN' LENGEDTITLE='劑量組:'
            GRPVAR='ARMCD' TICKMIN='0.5' TICKMAX='13';
run;



GTL最強(qiáng)大的特性之一是圍繞著分層語(yǔ)句塊(即:Layout布局)構(gòu)建的語(yǔ)法,常用布局:

1. OVERLAY : 用于在單個(gè)單元格中顯示二維繪圖的通用布局

2. GRIDDED : 網(wǎng)格圖形,所有單元格獨(dú)立

3. LATTICE : 升級(jí)版多單元格布局。坐標(biāo)軸可以跨列或行共享,并且位于網(wǎng)格外部


通過兩個(gè)例子來(lái)初步認(rèn)識(shí)一下布局的魅力


1. 簡(jiǎn)單LATTICE布局


GTL代碼:

上下左右滑動(dòng)閱覽

proc template;
  define statgraph Simple_Layout;
    begingraph;
        entrytitle 'Simple Layout';
      layout lattice / columns=2 columngutter=5;
        layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
                scatterplot x=weight y=systolic / markerattrs=(size=0);
                    entry halign=center textattrs=(size=20) "1" /  valign=center;
            endlayout;
        layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
                scatterplot x=weight y=diastolic / markerattrs=(size=0);
                    entry halign=center textattrs=(size=20) "2" /  valign=center;
            endlayout;
        endlayout;
      endgraph;
  end;
run;

proc sgrender data=sashelp.heart template=Simple_Layout;
run;


2. 復(fù)雜LATTICE布局


GTL代碼:

下左右滑動(dòng)閱覽

proc template;
  define statgraph Complex_Layout;
    begingraph;
      layout lattice / columns=2 columnweights=(.6 .4) columngutter=5;
          layout lattice / rows=4 rowweights=(.25 .2 .2 .35) rowgutter=5;
            layout lattice / columns=2 rowweights=(.6 .4) columngutter=5;
            layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
                scatterplot x=height y=weight / markerattrs=(size=0);
                    entry halign=center textattrs=(size=20) "1" /  valign=center;
                  endlayout;
            layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
                scatterplot x=height y=weight / markerattrs=(size=0);
                    entry halign=center textattrs=(size=20) "2" /  valign=center;
                  endlayout;
              endlayout;
            layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
              scatterplot x=height y=weight / markerattrs=(size=0);
                  entry halign=center textattrs=(size=20) "3" /  valign=center;
              endlayout;
            layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
              scatterplot x=height y=weight / markerattrs=(size=0);
                  entry halign=center textattrs=(size=20) "4" /  valign=center;
              endlayout;
              layout lattice / columns=2 rowweights=(.6 .4) columngutter=5;
            layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
                scatterplot x=height y=weight / markerattrs=(size=0);
                  entry halign=center textattrs=(size=20) "5" /  valign=center;
              endlayout;
              layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
                scatterplot x=height y=weight / markerattrs=(size=0);
                    entry halign=center textattrs=(size=20) "6" /  valign=center;
                endlayout;
              endlayout;
            endlayout;
        layout overlay / walldisplay=(outline) xaxisopts=(display=none) yaxisopts=(display=none);
            scatterplot x=height y=weight / markerattrs=(size=0);
              entry halign=center textattrs=(size=20) "7" /  valign=center;
            endlayout;
        endlayout;
      endgraph;
  end;
run;

ods graphics / reset width=5in height=5in imagename='Complex_Layout';
proc sgrender data=sashelp.class template=Complex_Layout;
run;



PART 03

數(shù)據(jù)準(zhǔn)備


準(zhǔn)備一份不同采血點(diǎn)的血藥濃度Mean±SD的模擬數(shù)據(jù):

上下左右滑動(dòng)閱覽

data test;
      input ARMCD $10. ATPTN Mean Meanlow Meanhig;
datalines;
劑量組1 1    212.5   206.1   218.9
劑量組1 2    141.9    66.8    217.0
劑量組1 3    118.7    50.4    187.0
劑量組1 4     87.4     41.3    133.5
劑量組1 6     58.4     26.9     89.8
劑量組1 8     40.7     15.7     65.6
劑量組1 12   19.9      7.9      31.9
劑量組2 1     87.7     23.5    151.8
劑量組2 2    135.3   135.3   290.5
劑量組2 3    126.4   126.4   282.8
劑量組2 4    113.3   113.3   250.1
劑量組2 6     81.9     81.9    175.4
劑量組2 8     72.0       4.1    139.9
劑量組2 12     45.5    16.5    74.4
劑量組3 1    355.5     83.3    627.7
劑量組3 2    290.5   107.4    473.6
劑量組3 3    303.0   206.8    399.2
劑量組3 4    217.0   163.3    270.7
劑量組3 6    166.0   110.8    221.2
劑量組3 8    129.5     92.0    167.0
劑量組3 12     84.4    53.7    115.0
;
run;


SAS數(shù)據(jù)集:


PART 04

繪圖


藥時(shí)曲線的血藥濃度所對(duì)應(yīng)的坐標(biāo)軸通常采用線性和半對(duì)數(shù)兩種不同方式呈現(xiàn)。


Level 1   橫向并列,簡(jiǎn)單直接

1. 使用lattice作為最外層布局

2. 內(nèi)嵌兩個(gè)overlay作為基礎(chǔ)單元格布局,分別容納線性藥時(shí)曲線和半對(duì)數(shù)藥時(shí)曲線


上下左右滑動(dòng)閱覽

proc template;
      define statgraph tmp1;
            dynamic XAXISLABEL YVAR XVAR GRPVAR LENGEDTITLE TICKMIN TICKMAX;
            begingraph;
                  layout lattice / columns=2 rows=1;
                  column2headers;
                    entry "線性藥時(shí)曲線";
                    entry "半對(duì)數(shù)藥時(shí)曲線";
                  endcolumn2headers;
                        layout overlay/
                              xaxisopts=(label=XAXISLABEL  offsetmin=0 offsetmax=0
                                    linearopts=(tickvaluelist=(0 1 2 3 4 6 7 8 12) viewmin=TICKMIN viewmax=TICKMAX TICKVALUEFITPOLICY=ROTATE)
                                    tickvalueattrs=(size=7pt) labelattrs=(size=7pt))
                        yaxisopts=(label="Concentration (ng/mL)") walldisplay=none ;
                              seriesplot y=YVAR x=XVAR / group=GRPVAR name="stocks1";
                              scatterplot y=YVAR x=XVAR / group=GRPVAR name="stocks2"
                                    YERRORLOWER=meanlow YERRORUPPER=meanhig markerattrs=(symbol=squarefilled size=8) ;
                              mergedlegend "stocks1"  "stocks2" /title=LENGEDTITLE  border=true across=4 DISPLAYCLIPPED=TRUE;
                        endlayout;
                        layout overlay/
                              xaxisopts=(label=XAXISLABEL  offsetmin=0 offsetmax=0
                                    linearopts=(tickvaluelist=(0 1 2 3 4 6 7 8 12) viewmin=TICKMIN viewmax=TICKMAX TICKVALUEFITPOLICY=ROTATE)
                                    tickvalueattrs=(size=7pt) labelattrs=(size=7pt))
                        yaxisopts=(label="Concentration (ng/mL)" TYPE=LOG LOGOPTS=(base=10)) walldisplay=none ;
                              seriesplot y=YVAR x=XVAR / group=GRPVAR name="stocks3";
                              scatterplot y=YVAR x=XVAR / group=GRPVAR name="stocks4"
                                    YERRORLOWER=meanlow2 YERRORUPPER=meanhig markerattrs=(symbol=squarefilled size=8) ;
                              mergedlegend "stocks3" "stocks4"/title=LENGEDTITLE /*border=true*/ across=4 DISPLAYCLIPPED=TRUE;
                        endlayout;
                  endlayout;
            endgraph;
      end;
run;

proc sgrender data=test template=tmp1;
dynamic XAXISLABEL='Time(h)' YVAR='Mean' XVAR='ATPTN' LENGEDTITLE='劑量組:' GRPVAR='ARMCD' TICKMIN='0.5' TICKMAX='13';
run;



將線性藥時(shí)曲線和半對(duì)數(shù)曲線直接橫向排列起來(lái)是最簡(jiǎn)單省力的方法,同時(shí)也有一些缺點(diǎn),如:

?  圖例重復(fù)

?  圖形中大面積空白,缺少層次




Level 2   以圖嵌圖,填補(bǔ)空白

藥時(shí)曲線的消除相部分有大量空白,嘗試將半對(duì)數(shù)藥時(shí)曲線縮小填充到空白部分,提高圖形層次感。

1. 使用overlay作為最外層布局,容納線性藥時(shí)曲線

2. 內(nèi)嵌gridded作為獨(dú)立的單元格布局,嵌入半對(duì)數(shù)藥時(shí)曲線

解決了

? 圖例重復(fù)

? 圖形合并

但不同分組標(biāo)記形狀一致,僅以顏色來(lái)區(qū)分的效果較差。


上下左右滑動(dòng)閱覽

proc template;
      define statgraph tmp2;
            dynamic XAXISLABEL YVAR XVAR GRPVAR LENGEDTITLE TICKMIN TICKMAX;
            begingraph;
                  layout overlay/
                        xaxisopts=(label=XAXISLABEL  offsetmin=0 offsetmax=0
                              linearopts=(tickvaluelist=(1 2 3 4 6 7 8 12) viewmin=TICKMIN viewmax=TICKMAX TICKVALUEFITPOLICY=ROTATE)
                              tickvalueattrs=(size=7pt) labelattrs=(size=7pt))
                  yaxisopts=(label="Concentration (ng/mL)" TYPE=LINEAR) ;
                        seriesplot y=YVAR x=XVAR / group=GRPVAR name="scatter";
                        scatterplot y=YVAR x=XVAR / group=GRPVAR name="scatter2"
                              YERRORLOWER=meanlow YERRORUPPER=meanhig ;

                        layout gridded / width=300px height=200px halign=right valign=top;
                              layout overlay/
                                    xaxisopts=(label=XAXISLABEL  offsetmin=0 offsetmax=0
                                          linearopts=(tickvaluelist=(1 2 3 4 6 7 8 12) viewmin=TICKMIN viewmax=TICKMAX TICKVALUEFITPOLICY=ROTATE)
                                          tickvalueattrs=(size=7pt) labelattrs=(size=7pt))
                              yaxisopts=(label="Concentration (ng/mL)" TYPE=LOG
                                    LOGOPTS=(base=10 tickvaluelist=(1 10 100 1000) viewmin=0 viewmax=1000));
                                    seriesplot y=YVAR x=XVAR / group=GRPVAR;
                                    scatterplot y=YVAR x=XVAR / group=GRPVAR
                                          YERRORLOWER=meanlow YERRORUPPER=meanhig  ;
                              endlayout;
                      endlayout;
                      mergedlegend "scatter" "scatter2"/title=LENGEDTITLE across=4 DISPLAYCLIPPED=TRUE;
                  endlayout;
            endgraph;
      end;
run;

proc sgrender data=test template=tmp2 ;
      dynamic XAXISLABEL='Time(h)' YVAR='Mean' XVAR='ATPTN' LENGEDTITLE='劑量組:' GRPVAR='ARMCD' TICKMIN='0.5' TICKMAX='13';
run;



Level 3   錦上添花,增強(qiáng)效果

1. 添加discreteattrmap塊,設(shè)置不同分組的顯示屬性,讓區(qū)分更具辨識(shí)度


上下左右滑動(dòng)閱覽

discreteattrmap name="symbols" / ignorecase=true;
    value "XXX" / markerattrs=() lineattrs=() TEXTATTRS=();
enddiscreteattrmap;
discreteattrvar attrvar=groupmarkers var=[分組變量] attrmap="symbols";


2. 在半對(duì)數(shù)藥時(shí)曲線中使用entry語(yǔ)句添加類似水印效果的文字


上下左右滑動(dòng)閱覽

entry  "LOG SCALE" /valign=bottom TEXTATTRS=(COLOR=CXDCDCDC SIZE=15 WEIGHT=BOLD);

proc template;
      define statgraph tmp3;
            dynamic XAXISLABEL YVAR XVAR GRPVAR LENGEDTITLE TICKMIN TICKMAX;
            begingraph;
                  discreteattrmap name="symbols" / ignorecase=true;
                      value "劑量組1" / markerattrs=(symbol=triangleFilled color=blue size=9 transparency = 0.6) lineattrs=(color=blue THICKNESS=0.5 PATTERN=4) TEXTATTRS=(size = 11pt  family='Times New Roman');
                      value "劑量組2" / markerattrs=(symbol=circleFilled color=green size=9 transparency = 0.6) lineattrs=(color=green THICKNESS=0.5 PATTERN=4) ;
                        value "劑量組3" / markerattrs=(symbol=squareFilled color=firebrick size=9 transparency = 0.6) lineattrs=(color=firebrick THICKNESS=0.5 PATTERN=4);
                  enddiscreteattrmap;
                  discreteattrvar attrvar=groupmarkers var=GRPVAR attrmap="symbols";

                              layout overlay/
                                    xaxisopts=(label=XAXISLABEL  offsetmin=0 offsetmax=0
                                          linearopts=(tickvaluelist=(1 2 3 4 6 7 8 12) viewmin=TICKMIN viewmax=TICKMAX TICKVALUEFITPOLICY=ROTATE)
                                          tickvalueattrs=(size=7pt) labelattrs=(size=7pt))
                              yaxisopts=(label="Concentration (ng/mL)" TYPE=LINEAR) ;
                                    seriesplot y=YVAR x=XVAR / group=groupmarkers name="scatter";
                                    scatterplot y=YVAR x=XVAR / group=groupmarkers name="scatter2"
                                          YERRORLOWER=meanlow YERRORUPPER=meanhig  ERRORBARATTRS=(THICKNESS=0.5 PATTERN=4);

                                    layout gridded / width=300px height=200px halign=right valign=top;
                                          layout overlay/
                                                xaxisopts=(label=XAXISLABEL  offsetmin=0 offsetmax=0
                                                      linearopts=(tickvaluelist=(1 2 3 4 6 7 8 12) viewmin=TICKMIN viewmax=TICKMAX TICKVALUEFITPOLICY=ROTATE)
                                                      tickvalueattrs=(size=7pt) labelattrs=(size=7pt))
                                          yaxisopts=(label="Concentration (ng/mL)" TYPE=LOG
                                                LOGOPTS=(base=10 tickvaluelist=(1 10 100 1000) viewmin=0 viewmax=1000));
                                          entry  "LOG SCALE" /valign=bottom TEXTATTRS=(COLOR=CXDCDCDC SIZE=15 WEIGHT=BOLD);
                                                seriesplot y=YVAR x=XVAR / group=groupmarkers;
                                                scatterplot y=YVAR x=XVAR / group=groupmarkers
                                                      YERRORLOWER=meanlow YERRORUPPER=meanhig ERRORBARATTRS=(THICKNESS=0.5 PATTERN=4);
                                          endlayout;
                                  endlayout;
                                  mergedlegend "scatter" "scatter2"/title=LENGEDTITLE across=4 DISPLAYCLIPPED=TRUE;
                              endlayout;
            endgraph;
      end;
run;

proc sgrender data=test template=tmp3 ;
      dynamic XAXISLABEL='Time(h)' YVAR='Mean' XVAR='ATPTN' LENGEDTITLE='劑量組:' GRPVAR='ARMCD' TICKMIN='0.5' TICKMAX='13';
run;



Level 4

當(dāng)前期采血點(diǎn)較為密集導(dǎo)致不同分組的結(jié)果不易辨別時(shí),可以將部分時(shí)間截取出來(lái)放在曲線右上方來(lái)增加區(qū)分度。


上下左右滑動(dòng)閱覽

/*===========數(shù)據(jù)準(zhǔn)備=========*/

data test2;
   input ARMCD $10. ATPTN Mean Meanlow Meanhig;
datalines;
劑量組1   1   287.1   41.24   532.96
劑量組1   2   343.1   153.44   532.76
劑量組1   3   320.4   175.59   465.21
劑量組1   4   295.9   156.72   435.08
劑量組1   5   268.3   140.22   396.38
劑量組1   6   252.7   136.16   369.24
劑量組1   8   212   114.716   309.284
劑量組1   10   182.1   93.099   271.101
劑量組1   24   84.3   36.133   132.467
劑量組1   48   22.18   8.709   35.651
劑量組1   72   6.207   0.332   12.082
劑量組1   96   0.589   0.589   2.4516
劑量組2   1   388.3   166.36   610.24
劑量組2   2   655.6   390.45   920.75
劑量組2   3   647.4   350.52   944.28
劑量組2   4   608   289.94   926.06
劑量組2   5   548.1   246.31   849.89
劑量組2   6   502.7   222.03   783.37
劑量組2   8   407.7   161.17   654.23
劑量組2   10   346.7   152.92   540.48
劑量組2   24   172.9   76.032   269.768
劑量組2   48   47.56   13.489   81.631
劑量組2   72   13.48   1.219   25.741
劑量組2   96   2.37   2.37   6.5262
劑量組3   1   628.6   355.7   901.5
劑量組3   2   1047   539.45   1554.55
劑量組3   3   1060   585.8   1534.2
劑量組3   4   1008   536.09   1479.91
劑量組3   5   961.7   464.03   1459.37
劑量組3   6   891.4   409.51   1373.29
劑量組3   8   780.2   303.3   1257.1
劑量組3   10   643.9   240.93   1046.87
劑量組3   24   246.6   121.04   372.16
劑量組3   48   60.28   22.872   97.688
劑量組3   72   16.89   3.892   29.888
劑量組3   96   4.387   4.387   9.7029
劑量組4   1   457.3   272.71   641.89
劑量組4   2   924.5   735.7   1113.3
劑量組4   3   1283   818.99   1747.01
劑量組4   4   1550   329.8   2770.2
劑量組4   5   1435   331.3   2538.7
劑量組4   6   1353   365.57   2340.43
劑量組4   8   1101   333.82   1868.18
劑量組4   10   939.3   225.16   1653.44
劑量組4   24   404.8   75.29   734.31
劑量組4   48   103   25.219   180.781
劑量組4   72   24.52   9.958   39.082
劑量組4   96   6.153   1.6598   10.6462
劑量組5   1   1826   370.3   3281.7
劑量組5   2   2700   414.9   4985.1
劑量組5   3   2953   500.4   5405.6
劑量組5   4   2880   733.5   5026.5
劑量組5   5   2593   632.6   4553.4
劑量組5   6   2200   642.6   3757.4
劑量組5   8   1941   488.8   3393.2
劑量組5   10   1896   547.8   3244.2
劑量組5   24   1095   162.49   2027.51
劑量組5   48   421.4   100.4   742.4
劑量組5   72   145   16.36   273.64
劑量組5   96   69.63   9.012   130.248
;
run;

/*調(diào)整數(shù)據(jù)集*/
data test3;
      merge test2 test2(where=(ATPTN le 10) rename=(Mean=Mean2 Meanlow=Meanlow2 Meanhig=Meanhig2));
      by ARMCD ATPTN;
run;

proc template;
      define statgraph tmp4;
            dynamic XAXISLABEL YVAR XVAR GRPVAR LENGEDTITLE TICKMIN TICKMAX TICKMAX2;
            begingraph;
                  discreteattrmap name="symbols" / ignorecase=true;
                      value "劑量組1" / markerattrs=(symbol=triangleFilled color=blue size=9 transparency = 0.6) lineattrs=(color=blue THICKNESS=0.5 PATTERN=4) TEXTATTRS=(size = 11pt  family='Times New Roman');
                      value "劑量組2" / markerattrs=(symbol=circleFilled color=green size=9 transparency = 0.6) lineattrs=(color=green THICKNESS=0.5 PATTERN=4) ;
                        value "劑量組3" / markerattrs=(symbol=squareFilled color=firebrick size=9 transparency = 0.6) lineattrs=(color=firebrick THICKNESS=0.5 PATTERN=4);
                        value "劑量組4" / markerattrs=(symbol=HomeDownFilled color=Purple size=9 transparency = 0.6) lineattrs=(color=Purple THICKNESS=0.5 PATTERN=4);
                        value "劑量組5" / markerattrs=(symbol=StarFilled color=Orange size=9 transparency = 0.6) lineattrs=(color=Orange THICKNESS=0.5 PATTERN=4);
                  enddiscreteattrmap;
                  discreteattrvar attrvar=groupmarkers var=GRPVAR attrmap="symbols";

                              layout overlay/
                                    xaxisopts=(label=XAXISLABEL  offsetmin=0 offsetmax=0
                                          linearopts=(tickvaluelist=(1 4 8 10 24 48 72 96) viewmin=TICKMIN viewmax=TICKMAX TICKVALUEFITPOLICY=ROTATE)
                                          tickvalueattrs=(size=7pt) labelattrs=(size=7pt))
                              yaxisopts=(label="Concentration (ng/mL)" TYPE=LINEAR) ;
                                    seriesplot y=YVAR x=XVAR / group=groupmarkers name="scatter";
                                    scatterplot y=YVAR x=XVAR / group=groupmarkers name="scatter2"
                                          YERRORLOWER=meanlow YERRORUPPER=meanhig  ERRORBARATTRS=(THICKNESS=0.5 PATTERN=4);

                                    layout gridded / width=400px height=300px halign=right valign=top;
                                          layout overlay/
                                                xaxisopts=(label=XAXISLABEL  offsetmin=0 offsetmax=0
                                                      linearopts=(tickvaluelist=(1 2 3 4 6 8 10) viewmin=TICKMIN viewmax=TICKMAX2 TICKVALUEFITPOLICY=ROTATE)
                                                      tickvalueattrs=(size=7pt) labelattrs=(size=7pt))
                                          yaxisopts=(label="Concentration (ng/mL)" TYPE=LINEAR) ;
                                                seriesplot y=Mean2 x=XVAR / group=groupmarkers ;
                                                scatterplot y=Mean2 x=XVAR / group=groupmarkers
                                                      YERRORLOWER=meanlow2 YERRORUPPER=meanhig2 ERRORBARATTRS=(THICKNESS=0.5 PATTERN=4);
                                          endlayout;
                                  endlayout;
                                  mergedlegend "scatter" "scatter2"/title=LENGEDTITLE across=5 DISPLAYCLIPPED=TRUE;
                              endlayout;
            endgraph;
      end;
run;

ods graphics on /width=800px height=400px;

proc sgrender data=test3 template=tmp4 ;
      dynamic XAXISLABEL='Time(h)' YVAR='Mean' XVAR='ATPTN' LENGEDTITLE='劑量組:' GRPVAR='ARMCD' TICKMIN='0.5' TICKMAX='100' TICKMAX2='12';
run;




PART 05

GTL繪圖小結(jié)


GTL語(yǔ)言具有非常豐富的功能,能夠?qū)崿F(xiàn)復(fù)雜的圖形繪制。僅以本文的藥時(shí)曲線為例,其實(shí)在美觀性的提升上仍有較大空間。


了解GTL的原理,熟練掌握l(shuí)ayout的使用,在實(shí)踐中不斷學(xué)習(xí)、積累和探索,才能繪制更美觀更簡(jiǎn)潔的圖形!


PART 06

結(jié)束語(yǔ)


熙寧生物|精翰生物已完成臨床藥理服務(wù)平臺(tái)搭建,正式提供PK、PD、ADA、PK/PD等不同類型臨床項(xiàng)目的統(tǒng)計(jì)分析服務(wù)。


其中統(tǒng)計(jì)編程團(tuán)隊(duì)具有豐富的統(tǒng)計(jì)編程經(jīng)驗(yàn),可完成符合CDISC標(biāo)準(zhǔn)的SDTM/ADaM數(shù)據(jù)集及其相關(guān)表格、圖表和列表,與生物分析結(jié)合形成一站式服務(wù),歡迎大家后臺(tái)留言咨詢交流。


參考文獻(xiàn)

[1] 國(guó)家藥品監(jiān)督管理局,藥物臨床試驗(yàn)數(shù)據(jù)遞交指導(dǎo)原則(試行),2020年第16號(hào).

專屬客服
免費(fèi)通話
表單填寫
回到頂部