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 ( n arestas ao gráfico.
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 ggvis
e ggplot2
. ggvis
é novo e atual, além de ter um design intencional para gerar gráficos interativos. Mas descobri que ggplot2+Shiny
també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, ggplot2
possui um recurso de zoom enquanto ggvis
não o possui. Mais importante, à medida que ggvis
cresce 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 ggplot2
com 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.
fonte
igraph
ou D3?Respostas:
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
ggplot2
e depoisggvis
tambémShiny
.Shiny
posso trabalhar com os dois, mas acheiggvis
mais estruturado e lúcido em comparação comggplot2
. Algo que é esperado como o primeiro está sendo desenvolvido com base na experiência de desenvolvimento do último. Além disso,ggvis
parece muito mais rápido do queggplot2
na 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,ggvis
pois 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, comod3js
, como já sugerido.fonte
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.
fonte