ggvis vs. ggplot2 + Brilhante; qual escolher para visualização interativa?

10

Há uma pergunta semelhante aqui no CrossValidated, e eu li as respostas. Minha pergunta é um pouco diferente. Não quero apenas visualizar meus dados e, de fato, o que quero visualizar não é fácil de visualizar com nenhum dos pacotes.

Eu tenho dois conjuntos de pontos ( coordenadas ) no meu gráfico. Quero adicionar arestas e torná-lo semelhante a um gráfico. Se eu tiver n pontos, com base na natureza do meu problema, preciso adicionar ( nx,yn arestas ao gráfico.(n/2)2

Quero adicionar alguns recursos interativos ao meu enredo. Por exemplo, clicando em um ponto (vértice), todos os outros vértices que não estão conectados a esse vértice clicado devem desaparecer para ter um gráfico mais lúcido e focado.

Tentei encontrar um pacote de visualização de rede adequado ao meu projeto, mas parece que todos eles usam os dados sobre a conexão de arestas ou nós e fornecem uma rede com base em algum algoritmo de layout específico. Meus dados são diferentes. Eu tenho as coordenadas dos nós e quero estabelecer algumas arestas entre alguns deles. Nos meus dados, os nós têm seus próprios locais fixos e não devem ser movidos.

Finalmente, reduzi os pacotes para ggvise ggplot2. ggvisé novo e atual, além de ter um design intencional para gerar gráficos interativos. Mas descobri que ggplot2+Shinytambém pode produzir gráficos interativos. (Isso está correto?) Além disso, achei queggplot2 os recursos recurso são mais variados e amadurecidos do que ggvis: por exemplo, ggplot2possui um recurso de zoom enquanto ggvisnão o possui. Mais importante, à medida que ggviscresce e muda, não quero investir muito tempo em um trabalho que se torna tecnicamente obsoleto ou com erros em um ano ou mais. Eu pensei que este é o caso se eu codificar com base em ggvis.

Agora você pode avaliar minha escolha ( ggplot2+shiny) e me aconselhar sobre a possibilidade de fazer o que eu quero fazer com ela?

Como eu não conhecia nenhum dos pacotes mencionados, comecei a aprender ggplot2com o livro de Wickham e adoro! Mas tenho medo de passar algumas semanas e descobrir que esse incrível pacote não pode fazer o que quero, mesmo com a ajuda de Shiny.

PS: Quero colocar o código final no github para que prováveis ​​usuários possam fazer o download e executá-lo. Portanto, não preciso fazer um aplicativo da Web, não há necessidade de qualquer site ou colocação do mapa interativo online. Eu só preciso ter um enredo interativo que possa ser executado de dentro do Rstudio.

Shahin
fonte
Bem vindo ao site! Você tentou igraphou D3?
Dawny33
Obrigado! Revisei o que o igraph pode fazer por mim e não o encontrei alinhado com os dados que tenho. Tanto quanto eu entendi, o igraph visualiza uma rede com base nos dados dos vértices conectados (ou dados semelhantes sobre arestas). Com base em alguns algoritmos e prioridades, o igraph localiza os vértices no gráfico compatíveis com os dados fornecidos. Mas quero que os vértices estejam exatamente nas coordenadas correspondentes que tenho no meu conjunto de dados. Não quero que o pacote escolha seu layout e localização.
Shahin 21/01
Por que não o d3js.org ? Parece que você tem requisitos muito particulares. O D3 facilita extremamente o trabalho com SVG.
Ricardo Cruz
Já experimentou gephi?
MM
Você poderia fornecer um link para a pergunta CrossVal.
Jim

Respostas:

4

Bem, muitos meses se passaram a partir desta solicitação de ajuda. Escrevo esta resposta para meu próprio pedido, a fim de compartilhar minha experiência. Eu aprendi ggplot2e depois ggvistambém Shiny. Shinyposso trabalhar com os dois, mas achei ggvismais estruturado e lúcido em comparação com ggplot2. Algo que é esperado como o primeiro está sendo desenvolvido com base na experiência de desenvolvimento do último. Além disso, ggvisparece muito mais rápido do que ggplot2na geração rápida de gráfico / gráfico, parece muito mais adequado para 'Shiny' e para criar um applet. No entanto, o ponto negativo é a falta de muitos recursos, ggvispois o pacote está em desenvolvimento e ainda não amadureceu.

E muito obrigado aos comentários aqui. Eu verifiquei Gephi, não ajudaria. Criei meu applet que funciona muito bem, mas finalmente cheguei a esse ponto em que preciso usar ferramentas mais poderosas, como d3js, como já sugerido.

Shahin
fonte
0

O tempo voa! Após 2 anos de experiência profissional, agora respondo à minha própria pergunta com melhor compreensão do Shiny, R e visualização interativa.

O Plotly é de longe a melhor resposta. Ele pode ser facilmente usado pela conversão ggplotly () dos gráficos estáticos ggplot2 ou diretamente aprendendo a lógica por trás das funções Plotly.

O último caso é sugerido para aplicações com diversas plotagens.

Shahin
fonte