SAS

layoutステートメントを使いこなす(4) Groballegend layout

複数のパネルを利用してグラフを作成する場合はGROBALLEGENDレイアウトを利用して凡例を作成します。

GROBALLEGENDレイアウト

GROBALLEGENDレイアウトはグラフエリアの下に複数のプロットに共通の凡例を設置することができます

Single-cellレイアウトの場合はレイアウト内部に凡例を配置できましたが、Muitl-cellレイアウトであるDATALATTICEレイアウトやDATAPANELレイアウトでは、PROTOTYPEレイアウト以外のレイアウトは設置できません。またPROTYTYPEレイアウトは内部に凡例を設置するはできません。

そのため Multi-cellレイアウトで凡例を設置したい場合はmulti-cellレイアウトの下にgroballegendレイアウトを設置します。

GROBALLEGENDブロック内ではdiscretelegendステートメントまたはMergedlegendステートメントのみ使用できます。

以下の例ではアヤメの種類毎にがくの幅と長さおよび花びらの幅と長さをプロットしています。DATALATTICEレイアウトを使用しているのでGroballegendレイアウトを使用して凡例を設置しています。

proc template;
define statgraph groballegend;
begingraph;

layout datalattice columnvar=Species /
       columndatarange=union
       rowdatarange=union
       headerlabeldisplay=value
       columnaxisopts=(griddisplay=on label="Width")
       rowaxisopts=(griddisplay=on label="Length");
   
   layout prototype;
      scatterplot x=SepalLength y=SepalWidth /
         name="scatter1"
         markerattrs=(color=red);
      scatterplot x=PetalLength y=PetalWidth /
         name="scatter2"
         markerattrs=(color=blue);
   endlayout;

endlayout;

layout globallegend / type=column title="Data";
   discretelegend "scatter1" / ;
   discretelegend "scatter2" / ; 
endlayout; 

endgraph;
end;
run;

proc sgrender data=sashelp.iris template=groballegend;
run;

実行結果