Embora eu saiba que há uma série de funções para gerar mapas de calor em R, o problema é que não consigo produzir mapas visualmente atraentes. Por exemplo, as imagens abaixo são bons exemplos de mapas de calor que eu quero evitar. O primeiro claramente carece de detalhes, enquanto o outro (baseado nos mesmos pontos) é muito detalhado para ser útil. Ambos os gráficos foram gerados pela função density () no espaço pacote R.
Como posso obter mais "fluxo" nas minhas parcelas? O que eu estou buscando é mais olhar os resultados do SpatialKey comercial ( captura de tela ) é capaz de produzir.
Alguma dica, algoritmo, pacote ou linha de código que possa me levar nessa direção?
r
data-visualization
spatial
Figaro
fonte
fonte
Respostas:
Há duas coisas que afetarão a suavidade da plotagem, a largura de banda usada para a estimativa de densidade do kernel e as quebras às quais você atribui cores na plotagem.
Na minha experiência, para análise exploratória, apenas ajusto a largura de banda até obter um gráfico útil. Demonstração abaixo.
Simplesmente alterar o esquema de cores padrão não ajudará ninguém, nem alterará a resolução dos pixels (se alguma coisa a resolução padrão for muito precisa, você deverá reduzir a resolução e aumentar os pixels). Embora você queira alterar o esquema de cores padrão para fins estéticos, ele é altamente discriminatório.
Coisas que você pode fazer para ajudar a cor é alterar o nível de escala para logaritmos (será realmente só ajuda se você tem um muito processo não homogêneo), alterar a paleta de cores a variar mais na extremidade inferior (bias em termos de especificação de rampa de cores em R) ou ajuste a legenda para ter posições discretas em vez de contínuas.
Exemplos de viés na lenda adaptados daqui , e eu tenho outro post no site GIS explicando a coloração dos compartimentos discretos em um exemplo bastante simples aqui . Isso não ajudará se o padrão estiver acima ou abaixo da suavização, para começar.
Para tornar as cores transparentes na última imagem (onde a primeira bandeja de cores é branca), basta gerar a rampa de cores e substituir a especificação RGB por cores transparentes. Exemplo abaixo usando os mesmos dados que acima.
fonte
Você pode se beneficiar da função interp do pacote akima. Isso permitirá que você interpole sua matriz para outra resolução, se necessário. Para criar algo parecido com o seu exemplo vinculado, você precisaria interpolar para uma grade bem fina (talvez com os argumentos xo e yo tendo ~ 1000 comprimento). Isso fornecerá uma nova matriz que você pode plotar com image (). Se você deseja transparência, isso exigirá algum trabalho adicional. Não é fácil fazer isso com uma paleta de cores; portanto, você pode ter que plotar cada grade como um polígono com uma cor atribuída.
fonte
Você pode querer olhar para o ggplot2. Parece que o pacote que você tentou não possui ótimos esquemas de cores ou "fluxo" - dê uma olhada no RColorBrewer. Há um blog onde ele implementou esses pacotes com um exemplo simples.
Não tenho certeza se você está tentando plotar dados geográficos conforme mostrado no exemplo vinculado, mas se você sabe que o Google oferece o "Guia do desenvolvedor da API do Google Static Maps V2" e você pode combinar o Google e o R com um pacote chamado RgoogleMaps .
Boa sorte com sua pesquisa.
fonte
Você já tentou aumentar a resolução
density
? Tente argumentodimyx=c(512, 512)
ou superior.fonte