如何利用SAS绘制地图

用SAS画地图需要用到gmap过程步,map=指定绘图的map数据集,data=指定地图的对应数据集,id指定map数据集和对应数据集中都有的变量,一般为各区域的代码,作为两个数据集的连接变量,分色级地图(choro),是一个二维地图,不同区域通过显示不同深浅的颜色代表不同的数值。
/*绘制世界地图*/
proc gmap map=mapsgfk.world data=mapsgfk.world;
  id id;
  choro id/ nolegend;
run;quit;
253025-1.png
/*绘制中国地图*/
proc gmap map=mapsgfk.china data=mapsgfk.china;
  id id;
  choro id/ nolegend;
run;quit;
253025-2.png
/*只保留省和直辖市的边界*/
proc gremove data=mapsgfk.china out=china;
  by id1;
  id id;
run;
proc gmap map=china data=china;
  id id1;
  choro id1 / nolegend;
run;quit;
253025-3.png
/*给各省标注上省名*/
data china_data;
  set mapsgfk.china_attr;
  keep id1 id1name;
run;
%annomac;
%maplabel(china,china_data,anno_label,id1name,id1,font=%str(arial),color=black,size=1.5,hsys=3);
proc gmap map=china data=china_data;
  id id1;
  choro id1 / nolegend anno=anno_label;
run;quit;

/*使用中文显示各省的标注,只需要使用id1nameU 并且转码即可显示正确的中文*/
data china_data;
  set mapsgfk.china_attr;
  keep id1 id1nameU;
run;
%annomac;
%maplabel(china,china_data,anno_label,id1nameU,id1,font=%str(arial),color=black,size=1.5,hsys=3);

data anno_label;
  set anno_label;
  text=unicode(text);
run;
proc gmap map=china data=china_data;
  id id1;
  choro id1 / nolegend anno=anno_label;
run;quit;
253025-4.png

请前往:http://www.mark-to-win.com/TeacherV2.html?id=166