Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Two questions on Pisati's -spmap- for plotting shapefile geographic data

From   Maurizio Pisati <>
Subject   Re: st: Two questions on Pisati's -spmap- for plotting shapefile geographic data
Date   Wed, 18 May 2011 16:16:11 -0400

> (1) First, I would like to plot a categorical variable with 2 values,
> so I'm using the -clmethod(unique)- option. So there is a total number
> of 3 different colors in my map "treated", controls" and "no values".
> But I haven't been able to figure out a way to get a legend that will
> display the labels ("treated","control","no values") instead of the
> values (1,0,.)?

This result can be easily achieved by attaching the desired labels to the values of the variable of interest. Here's an example based on the datasets distributed with -spmap-:

. use "Italy-RegionsData.dta", clear
. generate y = fortell<17
. replace y = . if inlist(id,1,10)
. label define y 0 "control" 1 "treated", modify
. label values y y
. spmap y using "Italy-RegionsCoordinates.dta", id(id) clmethod(unique) ndlabel("no values")

> (2) A bit more complicated: My base map delineates the areas of
> different districts, which in turn belong to a number of different
> states. Now I would like to plot the districts and color them
> according to the values of different non-geograpphic variables, but I
> would also like to clearly show the borders of the different states.
> My polygons describe only the districts within the states, I only have
> a database variable that tells me for each district which state it's
> in. So I'm wondering:
> (a) Is there any way to add a border around the states with my current
> data. Or is there any way to construct an additional data layer with
> the state polygons based on the district polygons within them?
> (b) If not, can I at least use different color schemes within each state?
> (c) Or is my goal only achievable if I already have the polygons as a
> shape file also for the states?

The easiest way to achieve this goal is following approach (c). For example:

. spmap fortell using "Italy-RegionsCoordinates.dta", id(id)   ///
     ocolor(white ..) osize(*1.5 ..) fcolor(Reds)              ///
     polygon(data("Italy-OutlineCoordinates.dta") osize(*1.5))

After some data manipulation, in principle JZ might also follow approach (b), but I'm not sure that would be a good idea (I guess the resulting map would be quite difficult to read).


*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index