使用SGPLOT在SAS中为箱线图定制颜色

使用SGPLOT在SAS中为箱线图定制颜色,sas,boxplot,Sas,Boxplot,以下代码来自SAS的网站 我用它来最终创建箱线图,但是我有两个数据集,具有相同的“分组”变量(有5个类别/级别/选项,比如A、B、C、D和E) 目前,代码自动将颜色编码应用于两个图形输出,不幸的是,在两个数据集中对同一类别/级别/选项应用不同的颜色。e、 g.在数据集1中,用蓝色对A进行编码,而在数据集2中,用红色对A进行编码 我想指定颜色模式,以便对两个数据集中的给定类别应用相同的颜色。这有助于可视化 data lft; input test $ A B @@;

以下代码来自SAS的网站

我用它来最终创建箱线图,但是我有两个数据集,具有相同的“分组”变量(有5个类别/级别/选项,比如A、B、C、D和E)

目前,代码自动将颜色编码应用于两个图形输出,不幸的是,在两个数据集中对同一类别/级别/选项应用不同的颜色。e、 g.在数据集1中,用蓝色对A进行编码,而在数据集2中,用红色对A进行编码

我想指定颜色模式,以便对两个数据集中的给定类别应用相同的颜色。这有助于可视化

  data lft;
       input test $ A B @@;
       datalines;
    ALAT      1.05198    0.97755  ASAT      0.78177    0.59554    ALKPH     0.20475    0.20589
    BILTOT    0.12868    0.10760  ALAT      1.00211    1.19132    ASAT      1.07368    0.85466
    ALKPH     0.69033    0.56213  BILTOT    0.38943    0.50285    ALAT      0.63396    0.53781
    ASAT      0.05348    0.14887  ALKPH     0.75340    0.07973    BILTOT    0.87345    0.44291
    ALAT      0.70381    0.81970  ASAT      1.03230    0.83068    ALKPH     0.42431    1.05635
    BILTOT    0.14320    0.54282  ALAT      0.23767    0.62809    ASAT      1.90154    1.76075
    ALKPH     0.41850    0.28345  BILTOT    0.54899    0.32524    ALAT      0.70693    0.89745
    ASAT      0.30255    0.47380  ALKPH     0.13230    0.28027    BILTOT    0.81690    0.14692
    ALAT      0.12827    0.37964  ASAT      0.80481    0.03603    ALKPH     0.18448    0.53166
    BILTOT    1.19420    0.35609  ALAT      0.82422    0.85656    ASAT      0.03430    1.25747
    ALKPH     0.21351    0.17765  BILTOT    0.32556    0.49431    ALAT      1.06820    0.28720
    ASAT      0.95546    1.11008  ALKPH     0.03092    1.04798    BILTOT    0.57001    0.03822
    ALAT      0.23055    0.77542  ASAT      0.10612    1.29305    ALKPH     0.03577    0.10963
    BILTOT    0.79160    0.28032  ALAT      0.78603    0.45259    ASAT      0.24872    0.96720
    ALKPH     0.50077    0.55558  BILTOT    0.38930    0.03795    ALAT      0.54711    2.20000
    ASAT      2.11348    0.77847  ALKPH     0.31640    0.04882    BILTOT    0.12872    0.48268
    ALAT      0.78600    0.46686  ASAT      0.24883    0.49811    ALKPH     0.03704    0.25468
    BILTOT    0.12923    0.17796  ALAT      0.48393    0.45078    ASAT      1.56288    1.35533
    ALKPH     0.43352    0.66135  BILTOT    1.06012    0.85799    ALAT      0.46068    0.25030
    ASAT      1.56448    0.52508  ALKPH     1.00876    0.57161    BILTOT    0.44817    0.19389
    ALAT      1.06331    0.00000  ASAT      1.38521    0.19008    ALKPH     0.35466    0.61868
    BILTOT    1.24180    0.04822  ALAT      0.48065    0.40992    ASAT      1.05618    0.78853
    ALKPH     0.19355    0.66358  BILTOT    0.73715    0.09852    ALAT      1.21493    0.64416
    ASAT      0.70453    2.51609  ALKPH     0.26489    0.33604    BILTOT    0.72164    0.33025
    ALAT      1.04961    0.97218  ASAT      0.32183    1.35889    ALKPH     0.03934    0.41986
    BILTOT    0.20788    0.12524  ALAT      0.11145    0.80421    ASAT      0.29223    0.94908
    ALKPH     0.00864    0.05148  BILTOT    0.08176    0.00000    ALAT      0.54881    0.48289
    ASAT      0.23306    0.33808  ALKPH     0.58716    1.01387    BILTOT    0.73317    0.01936
    ALAT      0.70290    0.42668  ASAT      0.60399    1.09609    ALKPH     0.27376    0.00000
    BILTOT    0.17014    0.16435  ALAT      0.90385    1.06340    ASAT      0.00000    1.04065
    ALKPH     0.19284    0.27968  BILTOT    0.02284    0.10508    ALAT      0.77662    0.27623
    ASAT      0.79289    0.78862  ALKPH     0.24560    0.33058    BILTOT    0.44045    0.52485
    ALAT      1.15780    0.11335  ASAT      0.96932    0.84560    ALKPH     0.07827    0.29355
    BILTOT    0.13112    1.50000  ALAT      0.50103    0.61329    ASAT      1.11541    0.08967
    ALKPH     0.74840    0.43341  BILTOT    0.47621    0.85664    ALAT      0.36086    0.50746
    ASAT      2.03550    1.30451  ALKPH     0.56854    0.43620    BILTOT    0.09094    1.26472
    ALAT      0.95770    0.63754  ASAT      2.03683    1.83280    ALKPH     1.40042    0.12018
    BILTOT    0.22545    0.43027  ALAT      0.32817    0.50025    ASAT      2.60000    0.24234
    ALKPH     0.13532    0.21778  BILTOT    0.55075    0.48568    ALAT      0.26668    0.45166
    ASAT      1.06058    0.83500  ALKPH     0.22807    0.62830    BILTOT    0.46843    0.16910
    ALAT      0.28617    0.55219  ASAT      0.30707    0.52809    ALKPH     0.55278    0.04707
    BILTOT    0.06412    0.37335  ALAT      0.28907    0.14920    ASAT      0.10258    0.75400
    ALKPH     0.00730    0.10016  BILTOT    0.47780    0.23071    ALAT      1.16461    0.92092
    ASAT      0.80571    0.22561  ALKPH     0.17983    0.62150    BILTOT    0.53452    0.77714
    ALAT      0.05326    0.51731  ASAT      1.09366    1.67147    ALKPH     0.56498    0.30936
    BILTOT    0.07047    0.34371  ALAT      1.05258    0.05138    ASAT      0.15650    0.38367
    ALKPH     0.09618    0.50434  BILTOT    0.59625    1.44028    ALAT      0.10204    0.33631
    ASAT      0.95273    0.15079  ALKPH     0.70621    0.06809    BILTOT    0.37559    0.92632
    ALAT      0.76055    0.72907  ASAT      1.36379    0.12393    ALKPH     0.03081    2.00000
    BILTOT    0.92652    0.19981  ALAT      0.95481    0.32130    ASAT      0.75320    2.50581
    ALKPH     0.23371    1.17739  BILTOT    0.30880    0.22500    ALAT      1.96947    0.05734
    ASAT      2.58784    0.21524  ALKPH     0.76119    0.48148    BILTOT    0.25826    0.52166
    ALAT      1.03068    0.14734  ASAT      2.44450    0.48403    ALKPH     0.34170    0.34804
    ;
    run;

    proc transpose data=lft out=lft2(rename=col1=value) name=drug;
       var a b;
       by test notsorted;
    run;

    title 'Distribution of Maximum Liver Function Test Values by Treatment';

    proc sgplot data=lft2;
       vbox value / category=test group=drug;
       xaxis label="Treatment";
       keylegend / title="Drug Type";
    run; 
我想出了这个模板:

data test;
  length value FillColor LineColor $30;
  Id='X'; Value="A"; FillColor='Red'; LineColor='Black'; output;
  Id='X'; Value="B"; FillColor='Yellow'; LineColor='Black'; output;
  Id='X'; Value="Cevol_greater_OneYear"; FillColor='Green'; LineColor='Black'; output;
  Id='X'; Value="Cevol_Term_No_Longer_Use"; FillColor='Blue'; LineColor='Black'; output;
  Id='X'; Value="Cevol_DhartTirm"; FillColor='Orange'; LineColor='Black'; output;
run;


proc sgplot data=lft2 dattrmap=test;
           vbox value / category=test group=drug attrid=X;
           xaxis label="Treatment";
           keylegend / title="Drug Type";
        run; 
当我应用上述内容时,有些类别的编码相同,但有些不是第一张图像:

第二幅图像:


箱线图的颜色正确

您使用的SAS版本是什么?如果SAS 9.3+是-使用SAS 9.3。当我提出一些代码时,我已经修改了这个问题,但是当我运行它时,我没有得到任何图形输出。它就像一个空白的灰色框,请参见上面的链接和数据属性映射选项。我尝试了链接中的代码,但它无法准确工作-我已在应用于数据集时更新了代码,并解释了发生的情况