|
|
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;
|
|||||