これは SGPLOT をよく使用する方なら一度は困るところではないでしょうか?
まずは、以下の失敗例をご覧ください。
失敗例
/* Sample Data */ proc sort data=sashelp.class (obs=5) out=class; by age; run; /* BY値ごとにグラフを作成 */ ods graphics / height=400 width=400; proc sgplot data=class; scatter x=height y=weight / group=sex markerattrs=(symbol=circlefilled); by age; run; |
「BYステートメント」によって、変数「AGE」の値ごとにグラフを作成しています。
また「GROUP=オプション」によって、変数「SEX」の値ごとにシンボルカラーを変えています。
ここで気になるのが、、
- X軸とY軸の目盛がグラフ間で異なっている。
- シンボルの色がグラフ間で異なっている(SEX=Fのシンボルが、AGE=13の時は青、AGE=14の時は赤になっている)
そうなんですよ、、BY値ごとにグラフを作成すると、軸やシンボルはグラフ間で統一してくれません。
でも解決方法は簡単!
成功例
proc sgplot data=class uniform=all; scatter x=height y=weight / group=sex markerattrs=(symbol=circlefilled); by age; run; |
「UNIFORM=オプション」を指定するだけ!
このオプションは「BY値ごとに作成したグラフのどこを統一させたいか」を設定します。
設定値には以下があります。
設定値には以下があります。
UNIFORM=
設定値 | 設定内容 |
---|---|
SCALE | X軸を統一 and Y軸を統一 |
XSCALE | X軸を統一 |
YSCALE | Y軸を統一 |
GROUP | 「GROUP=オプション」に指定した変数の値ごとにシンボルや線種などを統一 |
XSCALEGROUP | 「XSCALE」と「GROUP」の両方を設定 |
YSCALEGROUP | 「YSCALE」と「GROUP」の両方を設定 |
ALL | 上記のすべてを統一 |
0 件のコメント:
コメントを投稿