Como criar um mapa atraente de choropleth no R?

18

Eu tenho experimentado técnicas de mapeamento de coropletas no R, tendo colhido os benefícios do ggplot2 por criar belos gráficos em um poderoso pacote de análise de dados.

Quando se trata de mapeamento, não consegui produzir resultados comparáveis ​​aos que eu sempre recebo do QGIS. Usando dados de fluxo em Sheffield (dados totalmente replicáveis ​​e arquivo .qgs aqui ), o QGIS produziu facilmente o seguinte:

Imagem QGIS

O melhor que pude produzir usando R (usando o código descrito aqui ) foram esses dois mapas, o primeiro usando GISTools e o segundo usando ggplot2:

GISTools choropleth ggplot2 choro

Para mim, a opção ggplot2 parece muito mais atraente, se eu pudesse resolver o problema das linhas defeituosas (provavelmente um problema com o comando fortify () ou não ler nos shapefiles usando o readOGR () descrito aqui .)

Portanto, a pergunta é dupla: a opção ggplot2 é a melhor solução de mapeamento de coropletas no R e, se sim, como posso resolver o problema das linhas brancas defeituosas?

Código replicável para descobrir o que eu fiz está aqui .

Editar - Como tornou a opção de saída choropleth () mais atraente:

New Rplot

A feiúra desta opção pode ser reduzida exportando em resolução mais alta e removendo a legenda ( outras legendas R estão disponíveis). Ainda não conseguiu alterar a espessura da linha, mas está melhorando! Linhas vermelhas representam fluxos para zonas que empregam> 5000 pessoas.

RobinLovelace
fonte
1
O primeiro mapa R pareceria muito melhor se você reduzisse o tamanho dos contornos do polígono (e talvez os tornasse completamente transparentes como no primeiro exemplo do QGIS).
Andy W
3
Concordei, mas não sei como fazer isso - o código que usei foi "choropleth (oas, v = oas $ to, shades)". Procurou a documentação para linhas de remover, mas não encontrou nada: cran.r-project.org/web/packages/GISTools/GISTools.pdf
RobinLovelace
1
@RobinLovelace Se você colocar seu código R, certamente podemos ajudá-lo com esses problemas, mas sem um exemplo reproduzível, não é fácil identificar os problemas. Eu aprecio o esforço que você fez para colocar as capturas de tela (úteis), mas as imagens são apenas a cereja que deve ser entregue em cima do bolo do código-fonte.
SlowLearner
Por favor, veja o código reprodutível contidas nesta pasta .zip, como dito acima: dl.dropbox.com/u/15008199/Rflows-simple.zip
RobinLovelace
@RobinLovelace Obrigado, interessante, baixou
SlowLearner

Respostas:

7

Existem ótimos recursos exatamente sobre esse assunto muito interessante, incluindo:

Das revoluções:

Choropleth Map R Challenge

Resultados do Desafio de Coropletas

No Stack Overflow.se:

Desenvolvendo mapas temáticos geográficos com R

Existem excelentes exemplos de mapas de choropleth e seu código R associado, incluindo o meu favorito (ou seja, mapa anexado) usando o ggplot2. Deve ser relativamente simples inserir seu próprio conjunto de dados em um dos exemplos de script.

Código R para este mapa disponível em This is the Green Room

Aaron
fonte
Muito obrigado por sinalizar esses excelentes recursos e por mostrar o mapa de desemprego dos EUA. Faltando uma lenda embora! Alguma sugestão de como traduzir esses recursos em mapas de Sheffield? Fragmentos de código para resolver minha tentativa fracassada de mapeamento de coroas usando ggplot2 e os dados que eu forneci de Sheffield foram muito apreciados!
precisa saber é o seguinte
@RobinLoveLace Estou feliz que os links tenham sido úteis para você. Você não deve ter problemas ao conectar seu próprio conjunto de dados aos vários scripts de amostra, embora seja necessário arregaçar as mangas e fazer algumas tentativas e erros nos pacotes específicos. Infelizmente, não tenho tempo agora para fazer isso por você - desculpe!
Aaron
1
Vou jogar e espero acrescentar mais edições e código replicável quando o mapa melhorar.
precisa saber é o seguinte