BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Fluorite | Level 6

Contents:     Purpose / Requirements / Usage  / Limitations / Example / References


Creates custom region maps quickly using PROC GMAP and without having to know the intricacies of the procedure.



Base SAS Software and SAS/GRAPH. You will first need to download the desired region shp file (For example, State, County or Zip shp file. You can download shape files here:



Download the file attached with this post and save it in your work directory (or any desired location). Replace the text within quotes in the following statement with the location of the %REGMAP macro definition file on your system. In your SAS program or in the SAS editor window, specify this statement to define the %REGMAP macro and make it available for use:

   %inc "<location of your file containing the REGMAP macro>";

Following this statement, you may call the %REGMAP macro.


The required arguments for the %REGMAP macro are as follows:


SAS data set to be analyzed.


Region map shape file to output the data upon (For example, State, County or Zip shp file).


Name of the geo variable that exists in both your data and the shape file. This will be the unique identifier of a region/location.


Name of the variable that is to be outputted on the region map.

title= (optional)

Title for the region map.

start_color= (optional)

Starting color in the color scale.

end_color= (optional)

Ending color in the color scale.

labels= (optional)

Labels for the regions.



Labels cannot be outputted on the map as of now but it’s a work in progress.




/*First step is to import the shape file*/

Proc MAPIMPORT OUT=State Datafile='your-location\cb_2016_us_state_20m.shp';



/*Make sure that the common_id variable is in the same format for both your dataset and shape file.

Note that when you import a shape file, SAS creates a dataset. You may manipulate this dataset just like in the following code.*/

data State2;

set State;




/*Now you set reference to where the REGMAP macro is located*/

%inc "your-location/";


/*Lastly, just call the macro funtion that creates the map*/

%regmap(your_data=Pop,shp_file=State2,common_id=STATE, response_var=CENSUS2010POP, title="US Population",start_color=CXFF0000 ,end_color=CX00FF00);



SAS Support Samples & Notes:


Accepted Solutions
Super User

You would need SAS/GRAPH for this as well. 

I'm assuming there is no question here, rather a sharing of code/ideas?

View solution in original post

Super User

You would need SAS/GRAPH for this as well. 

I'm assuming there is no question here, rather a sharing of code/ideas?

Fluorite | Level 6
Thanks for reading my post! Yes, I forgot that you'd need SAS/GRAPH too if it's not already installed. I just wanted to share my code because I know it can be challenging to create region maps if you're new to SAS. I confused with this website which appears to be Q&A only.
Super User

@akulkarni wrote:
 I confused with this website which appears to be Q&A only.

You can post topics/tutorials such as this, but they go under the library section. 



Secure your spot at the must-attend AI and analytics event of 2024: SAS Innovate 2024! Get ready for a jam-packed agenda featuring workshops, super demos, breakout sessions, roundtables, inspiring keynotes and incredible networking events.


Register by March 1 to snag the Early Bird rate of just $695! Don't miss out on this exclusive offer. 


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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 1 like
  • 2 in conversation