ods graphicsで作成される複合グラフを1つ1つのプロットに分解する話

データは適当です。

data Q1;
X=1;Y=4;output;
X=2;Y=5;output;
X=5;Y=8;output;
X=6;Y=9;output;
X=9;Y=12;output;
X=11;Y=10;output;
X=22;Y=26;output;
X=12;Y=15;output;
run;

ods graphicsが有効になっている状態で統計プロシジャをまわすと

ods graphics on;
proc reg data=Q1;
model Y = X;
run;
quit;
ods graphics off;























まあ、いっぱいプロットがでてきますよね。

試しに一つ開いてみると






















こういう複合プロットってありますよね。
凄い見栄え綺麗なんですが、複合状態じゃなく、個々に独立したプロットとして出したい時が
あるとします。

その場合


















だしたい複合プロットの名前を見てから

ods graphics on;
proc reg data=Q1 plots(only)=DiagnosticsPanel(unpack);
model Y = X;
run;
quit;
ods graphics off;

こんな感じで、(unpack)とつけてやります。そうすると























プロットが分解されます。


ここからはおまけですが、

例えば、ODS graphicsで作成される自動プロットも、内部的にはGTLで処理
されているわけなので、コードで再現可能なわけです。

例えば




















さっき、分解したプロットのうちの一つですが、これってどんなコードで作られているんだろうかと
思ったら

また














プロパティみるのですが、今度は「テンプレート」って部分をみます

















あとはテンプレートの表示タブから












階層をたどり












































目当てのテンプレートを発見したらダブルクリックすれば



こんな感じで、さっきのグラフを作っているGTLを入手できます。

ちなみに僕は45度線の書き方がわからない時に、この方法でゲットしました。


0 件のコメント:

コメントを投稿