Melhor maneira de visualizar o atrito usando R?

15

Thru este site que eu descobri recentemente Sankey diagramas, uma ótima maneira de visualizar o que está acontecendo em um tradicional fluxograma.

Aqui está um bom exemplo de um diagrama de Sankey de George M. Whitesides e George W. Crabtree , Não esqueça a pesquisa fundamental de longo prazo em energia Source; Não se esqueça da pesquisa fundamental de longo prazo em energia , ciência 9 de fevereiro de 2007: vol. 315. não. 5813, pp. 796 - 798.

Depois que percebi que não havia um pacote R da Sankey, encontrei um script R online , infelizmente esse script é bastante bruto e um pouco limitado. Com grandes esperanças, pedi um pacote Sankey R ou uma função mais madura no stackoverflow , mas, para minha surpresa, parece que não temos uma função madura para criar diagramas de Sankey em R.

Depois que publiquei uma recompensa, o Geek On Acid teve a gentileza de sugerir um pequeno hack no script existente, que o fez funcionar mais ou menos para o meu propósito específico.

O script R aprimorado produziu este diagrama, Geek no diagrama R-Sankey do ácido Fonte; stackoverflow.com .

Mas, a falta de um pacote R indica que os Diagramas Sankey não são uma maneira incrível de visualizar o atrito usando R em um fluxo de dados à la apresentado no diagrama acima (consulte a pergunta inicial do fluxo de pilha para dados e código R. Talvez existe uma maneira melhor de visualizar o atrito.

Qual você acha que é a melhor maneira de visualizar o atrito em um fluxo de dados usando R?

Eric Fail
fonte
7
É muito difícil fazer com que o diagrama tenha uma boa aparência de qualquer maneira automatizada (o primeiro exemplo provavelmente foi feito pelo artista colocando manualmente os nós). Difícil de programar nada tem a ver com sua utilidade como ferramenta gráfica. Você pode encontrar mais motivação neste post no site GIS sobre a visualização de fluxos. Também dou alguns exemplos de parsets e pontos em uma resposta a este site.
21712 Andy W
@ AndyW, obrigado por um comentário muito útil. Vou investigar os diferentes métodos e experimentar meus dados. Obrigado.
Eric Falha
Esse diagrama superior é uma ótima idéia, mas parece-me que a soma das fontes não é igual à soma das pias (altura assumindo descreve magnitude)
naught101
Ah .. não importa, eu li errado ... os bits mais leves nas fontes são apenas rótulos, não fazem parte dos dados. Um pouco confuso ..
naught101

Respostas:

4

Eu concordo com @gung. Acho que o diagrama da Sankey que você postou é um bom exemplo de onde a técnica pode ajudar. Embora seja complicado, o contexto (entrada e saída de energia) também é complexo e é difícil pensar em uma maneira mais agradável de visualizar os caminhos das entradas para saídas que atuam como novas entradas em várias categorias de uso.

Agora, então, para o exemplo de atrito que você postou, como outros observaram, não é útil usar um diagrama de Sankey. Eu acho que você precisa postar seu conjunto completo de variáveis, se você quiser uma boa recomendação sobre visualizações alternativas. Se você simplesmente deseja mostrar diferenças nas fontes de atrito entre os locais e os médicos, uma série pequena e múltipla de gráficos de pontos pode ser a mais fácil para o seu público entender e implementar ( veja este exemplo , onde, no seu caso, os grupos poderiam estar). os locais, os elementos dentro dos grupos seriam as causas do atrito e o eixo horizontal seria de 0 a 100%).

Se o diagrama Sankey é algo que você deseja usar e você está disposto a se envolver em outra linguagem de alto nível, há um bom exemplo (com código) na galeria do pacote de plotagem do Python, matplotlib.

Josh Hemann
fonte
3

Eu não assumiria necessariamente que a falta de um método implica que o método não é importante ou não é útil. Afinal, para todos os métodos que existem atualmente no R, houve um tempo (possivelmente recente - o R tem apenas 10 anos) quando não havia um pacote para ele.

No entanto, acho que existem inúmeras maneiras de visualizar dados como atrito. Meu primeiro pensamento ao analisar seu gráfico é que ele pode ser representado com um gráfico de pontos . Outras possibilidades existem também. A funcionalidade extra do Diagrama Sankey entrará em jogo quando você tiver algum atrito devido a uma causa específica em um ponto e depois mais à mesma causa posteriormente com outras entradas e saídas. Isso seria mais complicado de representar por gráficos padrão (também é mais difícil de seguir, mesmo com um diagrama de Sankey - por exemplo, aquele na parte superior da página exige muito trabalho para ler). Como você não parece ter isso, o diagrama de Sankey parece bonito, mas exagerado.

- Reinstate Monica
fonte
11
O primeiro gráfico dado é impressionante IMO. Tem muitos detalhes que dificilmente seriam capturados de maneira tão intuitiva em uma série de gráficos de pontos. Além disso, o Diagrama de Sankey é bom para visualizar fluxos de e para diferentes nós (a combinação entre energia usada e energia perdida).
21712 Andy W
@ AndyW, eu não pretendo bater esse número. É muito trabalhoso ler em grande parte porque contém muitas informações. O fato de atraí-lo e mantê-lo por um tempo pode ser uma vantagem real - não quis dizer que minha descrição fosse negativa. OTOH, os dados do OP são diretos o suficiente para que gráficos mais simples possam transmiti-los.
gung - Restabelece Monica
Bom argumento, se os dados do OP não forem mais complicados do que dados, provavelmente são mais problemas do que valem a pena! Eu nem gostaria de pensar em converter o diagrama de energia original em uma série de gráficos de pontos.
21712 Andy W
@gung, Obrigado por responder à minha postagem. Concordo que a falta de método não deve ser tomada como um sinal definitivo de que o método não é bom ou útil, e eu definitivamente não optei pelos diagramas de Sankey (SD). Em relação aos meus dados, o que você vê no diagrama é apenas a dimensão superior dos meus dados, tenho dados coletados em 4 locais diferentes e por 7 médicos diferentes, e gostaria de incluir essas informações no meu gráfico, como algum tipo de subdividir dentro do fluxo geral. Pode parecer um exagero com os dados atuais, mas acredito que um SD seria útil se eu incluísse todas as minhas variáveis.
Eric Falha
Com maior complexidade, o diagrama de Sankey provavelmente é sua melhor aposta. Também vale a pena ver algumas das postagens de @ AndyW, como as linkadas acima. Ele recebeu muitas respostas boas que podem ser relevantes. Por exemplo, se você clicar no nome dele para navegar até a página dele e clicar na tag de visualização de dados, poderá ver as postagens dele.
gung - Restabelece Monica
1

Que tal usar o código R para gravar um arquivo SVG com as larguras das setas definidas de acordo com os dados e um layout simples. Em seguida, carregue no Inkscape e dobre as setas, adicione etiquetas, etc, etc. ao conteúdo do seu coração para criar algo bonito.

Problema óbvio: você precisa refazer toda a sua prettificação no Inkscape se seus dados forem alterados (embora você possa usar o seu bonito SVG do Inkscape como modelo e apenas substituir novas larguras de seta).

Mas, honestamente, se essa bagunça multicolorida de rabiscos distorcidos no topo for um bom diagrama de Sankey, eu odiaria ver um mau com o estômago cheio [embora encará-lo por mais alguns minutos me dê uma pista sobre do que se trata, um bom gráfico não precisa disso].

Spacedman
fonte
2
Eu estaria interessado em ver uma maneira melhor de visualizar esses dados. Há um monte de informações em que a trama (e múltiplas variáveis diferentes), então é claro que vai ser complicado ...
naught101
2
Os micro-mapas de Dan Carr levam tempo para digerir o gráfico completo, assim como qualquer mapa detalhado. Nem é necessariamente uma coisa ruim. Veja o post de James Chesire, Fast Thinking e Slow Thinking Visualization .
21712 Andy W