Here's some code that imports a zcta boundary map, plots the zctas colored by zip3 ... and then gremoves the internal borders, and plots the zip3 polygons. This should be a good starting-point to get you going:
proc mapimport datafile="../democd17/zt37_d00.shp" out=zcta_map;
id zcta;
run;
proc gproject data=zcta_map (rename=(x=long y=lat)) out=zcta_map eastlong latlong degrees;
id zcta;
run;
data zcta_map; set zcta_map;
zip3=substr(zcta,1,3);
run;
proc gremove data=zcta_map out=zcta3_map;
by zip3;
id zcta;
run;
title ls=1.5 "NC Zip Code Map, Colored by zip3";
proc gmap data=zcta_map map=zcta_map all;
id zcta;
choro zip3 / coutline=gray cdefault=cxF5F5DC;
run;
title ls=1.5 "NC Zip3 Map, Colored by zip3";
proc gmap data=zcta3_map map=zcta3_map all;
id zip3;
choro zip3 / coutline=gray cdefault=cxF5F5DC;
run;
... View more