Distorsión poligonal ponderada por la población (cartogramas)

Estoy tratando de crear un mapa en R que transmita tanto la forma de la geometría subyacente (es decir, los límites físicos)y La importancia relativa del objeto en términos de un valor asociado.

Para concretar, me gustaría centrarme en reproducir (una versión de) el siguiente mapa * (elformas, no tanto elcolores ya que no puedo encontrar los datos de la encuesta):

Tampoco quiero molestarme en hacer que Alaska y Hawai aparezcan debajo de los EE. UU. En lugar de en sus ubicaciones geodésicamente correctas.

Estoy tan lejos como para fusionar los datos con los pesos, por ejemplo, de la siguiente manera:

1. Consigue polígonos
library(maptools)
library(data.table) #not strictly necessary but I prefer it
#US states downloaded (500k resolution) from:
#https://www.census.gov/geo/maps-data/data/cbf/cbf_state.html
us.states<-
  readShapePoly("~/Desktop/cb_2014_us_state_5m.shp")

setDT(us.states@data)

#for getting rid of territories, AK, HI
states<-sprintf("%02d",1:59)
ak.hi<-c("02","15")

us.states.contig<-
  us.states[us.states@data$STATEFP %in% 
              setdiff(states,ak.hi),]

#Unadorned plot
plot(us.states.contig)
text(coordinates(us.states.contig),
     us.states.contig@data[,paste0(STUSPS)],
     cex=.7)

2. Agregar datos del Colegio Electoral
#scraped from government page
library(rvest) #only necessary to scrape table
electoral.college.url<-
  paste0("http://www.archives.gov/federal-register/",
         "electoral-college/allocation.html")

electoral.college.dt<-
  (html(electoral.college.url) %>%
     html_nodes("table"))[[5]] %>% 
  html_table()
setDT(electoral.college.dt)
setnames(electoral.college.dt,c("State","Votes"))

#merge into geodata
us.states.contig@data<-
  copy(us.states.contig@data)[
    electoral.college.dt,electoral.votes:=i.Votes,
    on=c(NAME="State")]

#plot, coloring each state by size
states.ranked<-
  us.states.contig@data[,rank(electoral.votes,
                              ties.method="first")]
cols<-colorRampPalette(c("red","blue"))(51)[states.ranked]

plot(us.states.contig,col=cols)

Todo esto está muy bien: con un vistazo a este mapa, podemos decir qué estados tienen una representación alta y baja en el colegio electoral. Pero, ¿qué pasaría si (como en nuestro mapa de destino) quisiéramos representar otra variable con el color del estado?

3. Agregar los resultados de las elecciones de 2012
#scrape again
#2012 Election Results by State
election.wiki<-
  paste0("https://en.wikipedia.org/wiki/",
         "United_States_presidential_election,_2012")

results<-
  html(election.wiki) %>%
  html_node(xpath='//*[@id="mw-content-text"]/div[22]/table') %>%
  html_table()
#eliminate second header row, delete final row,
#  keep only the important columns
results.trim<-results[2:(nrow(results)-1),c(1,4,21)]
colnames(results.trim)<-c("name","pct","abbr")
results.dt<-setDT(results.trim)
#data idiosyncrasies, see Wiki page
results.dt<-results.dt[!grepl("–",abbr)|grepl("a",abbr)]
results.dt[grepl("–",abbr),abbr:=gsub("–.*","",abbr)]
results.dt[,"pct":=as.numeric(gsub("%","",pct))]

#merge
us.states.contig@data<-
  copy(us.states.contig@data
       )[results.dt,vote.pct:=i.pct,
         on=c(STUSPS="abbr")]

pcts<-us.states.contig@data[,vote.pct]
cols<-c("red","blue")[(pcts>=50)+1L]
tx.col<-c("white","black")[(cols=="red")+1L]
plot(us.states.contig,col=cols)
text(coordinates(us.states.contig),
     us.states.contig@data[,paste0(STUSPS)],
     col=tx.col)

Este último gráfico llega al quid de la cuestión. El primer gráfico presentado es muy superior en el sentido de que podemos percibir por el porcentaje rojo vs. azul del mapa si ganaron los republicanos o los demócratas; este último mapa es engañoso porque la mayoría de los estados republicanos también son los menos poblados.

¿Hay alguna forma de crear una versión distorsionada de este mapa que transmita la importancia relativa de cada estado en el colegio electoral? No pude encontrar ayuda en línea, tal vez principalmente porque no sé si hay un nombre estándar para este tipo de gráfico.

* Este mapa fue encontradoaquí; He visto mapas similares de tamaño distorsionado anteriormente, p. enEl economista. Parece que se basa en el trabajo deDr. Sam Wang en el Consorcio Electoral de Princeton y fue producido porDrew Thaler.

Respuestas a la pregunta(1)

Su respuesta a la pregunta