goptions device=activex;
として ActiveXの機能を使うことによって、グラフの各プロットにユーザーがマウスカーソル
をあてたときにそのデータの内容を表示する動的なグラフを作ることができました。
たとえば以下のような適当なデータを作ります。
data DS1;
call streaminit(777);
do ID=1 to 3;
do TIME=0 to 5;
VAL=int(rand('uniform')*100);
output;
end;
end;
run;
IDが被験者番号でTIMEが測定ポイント、VALが検査値です。
これに対して
ods listing close;
symbol1 i=j v=circle;
goptions device=activex;
ods html file="D:\gplotのグラフ.html";
proc gplot data=DS1;
plot VAL*TIME=ID;
run;
quit;
ods html close;
として実行すると
ブラウザが立ち上がり、セキュリティの設定によりますが
「このコンテンツを許可しますか?」的なメッセージがでて、OKと押すと
こんな感じで、今一番高い値の丸印にマウスをあてると、そのデータがID「2」のTIME「4」の
VAL「90」のデータであることがわかります。
はずれ値をとるために散布図等を書くことがあると思いますが、そういったときにはずれ値があるかの確認と、あった時にそれがどのデータなのか特定できるので大変重宝します。
さて、SG系グラフで同じようにするには、少し書き方を変えます。
imagemap=onというものを入れます。
ods graphics on/imagemap=on;
ods html body="gplotのグラフ2.html";
proc sgplot data=DS1;
series x=TIME y=VAL/group=id markers;
run;
ods html close;
実行すると
となります。
0 件のコメント:
コメントを投稿