BookmarkSubscribeRSS Feed
einstein
Quartz | Level 8

I have the addresses (address line, city state, zip) for individuals in 3 states (DC,MD,VA) and trying to create a map that will show the 3 states together and plot each individual so that I can see where most of them are coming from.

 

Is there some code someone can share with me or point me to the right resources to do this?

 

Thanks!

3 REPLIES 3
GraphGuy
Meteorite | Level 14

Here's one way to do it, using Proc Gmap and annotate ...

 

data my_data;
input statecode $ 1-2 value;
state=stfips(statecode);
datalines;
NC 491
SC 352
VA 108
;
run;

data my_map; set maps.us (where=(statecode in ('NC' 'SC' 'VA')));
run;

proc sql noprint;
create table anno_dots as
select unique my_data.*, uscenter.x, uscenter.y
from my_data left join maps.uscenter
on my_data.state=uscenter.state;
quit; run;

%let max_val=500; /* maximum size of data value to scale to */
%let max_area=40; /* size of the maximum dot you want in the map */
data anno_dots; set anno_dots;
length function $8 color $20;
xsys='2'; ysys='2'; hsys='3'; when='a';
function='pie'; rotate=360;
size=sqrt((value/&max_val)*&max_area/3.14);
color='dodgerblue'; style='psolid'; output;
color='gray33'; style='pempty'; output;
run;

pattern1 v=s color=grayf5;

proc gmap data=my_map map=my_map anno=anno_dots;
id statecode;
choro segment / levels=1 nolegend coutline=gray55;
run;

 

dot_map.png

sas-innovate-white.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Early bird rate extended! Save $200 when you sign up by March 31.

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1350 views
  • 0 likes
  • 4 in conversation