如何利用SAS绘制地图(二)

前两天我们讲过如何利用SAS绘制中国地图和世界地图,今天我们接着讲。
用中国各地的平均湿度数据来绘制地图
data hum;
  input prov: $10. id hummidity@@;
/*  变量中要包括id变量*/
  datalines;
安徽 1 75 新疆 13 52 陕西 26 58
浙江 2 70 西藏 14 38 天津 28 56
江西 3 69 甘肃 15 52 云南 29 70
江苏 4 72 广西 16 77 广东 30 71
吉林 5 59 贵州 18 77 海南 31 79
青海 6 56 辽宁 19 64 四川 32 75
福建 7 69 内蒙古 20 50 重庆 33 82
黑龙江 8 60 宁夏 21 49 香港 34 56
河南 9 58 北京 22 52 澳门 35 67
河北 10 56 上海 23 70 台湾 36 80
湖南 11 73 山西 24 53
湖北 12 71 山东 25 57
;
run;

/*data指定分析数据集hum, map指定地图文件maps .china*/
proc gmap data=hum map=maps.china;
/*指定id变量为id , 跟maps.china文件的id对应起来*/
id id;
/*指定反应变品为hummidity, 按hummidity的值显示不同颜色*/
choro hummidity;
run;quit;
253026-1.png
在地图上标出地名
/*sas自带宏程序, 必须%annomac在前, %maplabel在后*/
%annomac;
/*%maplabel(maps.china,hum,labelout,prov,id,font=Arial,color=red,size=2,hsys=3);*/
%maplabel(maps.china,hum,labelout,prov,id,font=%str(arial),color=red,size=1.5,hsys=3);
proc gmap map=maps.china data=hum;
id id;
choro hummidity/ nolegend annotate=labelout;
run;
253026-2.png
宏%maplabel有9个参数,依次为:地图文件名、包含区域名称的数据集文件、输出的注释数据集(该数据集名自行定义,在后面的gmap过程的annotate=选项中要用到)、表示区域名称的变量、id变量、字体、颜色、字体大小(默认为4)、坐标系统(该值与size一起来控制字体大小,默认为3)
绘制省地图
/*建立收入数据集profit*/
data profit;
input prov$ id profit;
datalines;
安徽 1 178.4
浙江 2 279.2
江西 3 154 .4
江苏 4 239.1
福建 7 166.5
上海 23 341.1
山东 25 213.5
run;


%annomac;
%maplabel(maps.china,profit,labelout,prov,id, font= Arial.color= red.size= 3,hsys = 3);
proc gmap map=maps.china data=profit;
id id;
choro profit/ annotate=labelout;
where id in (1,2,3,4,7,23,25); /*利用where语句选择六省一市的id号*/
run;
253026-3.png


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