Взвешенное населением искажение полигонов (картограммы)

Я пытаюсь создать карту в R, которая передает обе формы базовой геометрии (то есть, физические границы)а также относительная важность объекта с точки зрения связанной стоимости.

Для конкретности я бы хотел сосредоточиться на воспроизведении (версии) следующей карты * (формыне так уж многоцвета так как я не могу найти данные опроса):

Я также не хочу беспокоиться о том, чтобы Аляска и Гавайи появлялись под США, а не в их геодезически правильных местах.

Я только до тех пор, пока данные объединены с весами, например, следующим образом:

1. Получить полигоны
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. Добавить данные Коллегии выборщиков
#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)

Это все хорошо, и, взглянув на эту карту, мы можем сказать, какие штаты имеют высокую и низкую представленность в коллегии выборщиков. Но что, если (как в нашей целевой карте) мы хотим представить другую переменную с цветом состояния?

3. Добавить итоги выборов 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)

Этот последний график дает суть проблемы. Первый представленный график намного лучше в том смысле, что мы можем судить по проценту красного и синего на карте, выиграли ли республиканцы или демократы; эта последняя карта вводит в заблуждение, потому что большинство республиканских штатов также являются наиболее малонаселенными.

Есть ли способ создать искаженную версию этой карты, которая отражает относительную важность каждого штата в коллегии выборщиков? Я не мог найти какую-либо помощь онлайн, возможно, главным образом потому, что я не знаю, есть ли стандартное имя для этого типа графика.

* Эта карта была найденаВот; Я видел похожие карты с искаженным размером, например, вЭкономист, Похоже, что это основано на работеДоктор Сэм Ван в Консорциуме Выборов Принстона и был произведенДрю Талер.

Ответы на вопрос(1)

Ваш ответ на вопрос