Skip to content

Map of Italy data filled at the level of the province

2 messages · Francesca PANCOTTO, Bob Rudis

#
Dear Users
I am very new to the use of ggplot. I am supposed to make a plot of 
Italian provinces in which I have to fill the color of some provinces 
with the values of a variable(I do not provide the data because it is irrelevant which data to use).

Right now I explored the function map in maps package thanks to which I managed to plot
the map of Italy with provinces borders and select only those provinces contained in the 
vector nomi(which is just a list of character elements with the names of the provinces which are 
just like counties in the US).

map("italy",col=1:20, regions=nomi)

The problem is to fill the provinces level with the values of a variable that is the variable of interest:
I found a series of examples based on US data extracted from very hard to get databases.

Can anyone provide an easy example where to start from?

Thanks in advance
Francesca

----------------------------------
Francesca Pancotto
Professore Associato di Politica Economica
Universit? degli Studi di Modena e Reggio Emilia
Palazzo Dossetti - Viale Allegri, 9 - 42121 Reggio Emilia
Office: +39 0522 523264
Web: https://sites.google.com/site/francescapancotto/
----------------------------------
#
This should help you get started:

  library(maptools)
  library(ggplot2)
  library(ggalt)
  library(ggthemes)
  library(tibble)
  library(viridis)

  # get italy region map
  italy_map <- map_data("italy")

  # your data will need to have these region names
  print(unique(italy_map$region))

  # we'll simulate some data for this
  set.seed(1492)
  choro_dat <- data_frame(region=unique(italy_map$region),
                          value=sample(100, length(region)))

  # we'll use this in a bit
  italy_proj <- "+proj=aea +lat_1=38.15040684902542
+lat_2=44.925490198742295 +lon_0=12.7880859375"

  gg <- ggplot()

  # lay down the base layer
  gg <- gg + geom_map(data=italy_map, map=italy_map,
                      aes(long, lat, map_id=region),
                      color="#b2b2b2", size=0.1, fill=NA)

  # fill in the regions with the data
  gg <- gg + geom_map(data=choro_dat, map=italy_map,
                      aes(fill=value, map_id=region),
                      color="#b2b2b2", size=0.1)

  # great color palette (use a better legend title)
  gg <- gg + scale_fill_viridis(name="Scale title")

  # decent map projection for italy choropleth
  gg <- gg + coord_proj(italy_proj)

  # good base theme for most maps
  gg <- gg + theme_map()

  # move the legend
  gg <- gg + theme(legend.position=c(0.95, 0.3))

  gg

This uses a continuous color palette for the region fill. You may want
to consider binning data and using a discrete fill (IMO that's usually
a better choice for most choropleths).

-Bob

On Thu, Jun 2, 2016 at 5:37 AM, francesca Pancotto
<francesca.pancotto at gmail.com> wrote: