マウスポイントで情報を表示するHTMLのグラフをGPLOTとSGPLOT両方で作ってみる

出力先をhtmlにしてグラフを作成する時、旧来のgplotプロシジャでは
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 件のコメント:

コメントを投稿