GMAPプロシジャで、日本地図に各都道府県名を表示する際にメッセージ
[OS]ALL
[リリース]
[キーワード] SAS/GRAPH,GMAP
[質問]GMAPプロシジャで、ANNOTATEデータセットを用いて、日本地図に各都道府県名を表示しようとした際、下記のメッセージが出力されました。原因は何でしょうか。 NOTE: ERROR DETECTED IN ANNOTATE= DATASET WORK.ANNO. NOTE: PROBLEM IN OBSERVATION 1 - DATA SENSITIVE SIZING REQUEST NOT SUPPORTED FOR PROCEDURE GMAP
[回答]
GMAPプロシジャのANNOTATE機能を使用して、「座標システム」の定義として DATA型(XSYS='2' または '8'、YSYS='2' または '8')を使用すると、質問のエラーが発生します。
以下に、GMAPプロシジャのANNOTATE機能を使って、都道府県名付日本地図を描画するプログラム例を紹介します。 libname maps '!sasroot/japanese/maps'; /** 都道府県名の表示位置を計算 **/ proc summary data=maps.japanjis noprint; by pref; var x y; output out=prefdata(drop=_type_ _freq_) mean=x y; run; /** x,y 座標の最大最小値を計算 **/ proc summary data=maps.japanjis noprint; var x y; output out=temp(drop=_type_ _freq_) max=x_max y_max min=x_min y_min; run; data _null_; set temp; call symput('x_max',x_max); call symput('x_min',x_min); call symput('y_max',y_max); call symput('y_min',y_min); run; /** 座標値を %表示値に変換 **/ data anno; %annomac; retain when 'A'; merge maps.jdesc prefdata; by pref; x=(x-&x_min)*100/(&x_max-&x_min); y=(y-&y_min)*100/(&y_max-&y_min); %system(1,1,1); %label(x,y,desc,black,0,0,2,kanji,5); run; /** 分析する県別データ **/ data data; input pref sales; cards; 1 100 2 90 3 40 : : (中略) : : 46 110 47 70 ; run; /** 日本地図の描画 **/ proc gmap data=data map=japanjis anno=anno; choro sales/coutline=black; id pref; run; quit;
|