W CrossValidated jest podobne pytanie i przeczytałem odpowiedzi. Moje pytanie jest trochę inne. Nie chcę jedynie wizualizować moich danych, a tak naprawdę to, co chcę wizualizować, nie jest łatwe do wizualizacji za pomocą żadnego z pakietów.
Na moim wykresie mam dwa zestawy punktów ( współrzędne ). Chcę dodać krawędzie i uczynić to podobnym do wykresu. Jeśli mam n punktów, to w oparciu o naturę mojego problemu muszę dodać ( n / 2 ) 2 krawędzie do wykresu.
Następnie chcę dodać interaktywne funkcje do mojej fabuły. Na przykład, klikając jeden punkt (wierzchołek), wszystkie inne wierzchołki, które nie są połączone z tym klikniętym wierzchołkiem, muszą zniknąć, aby uzyskać bardziej przejrzysty i skupiony wykres.
Próbowałem znaleźć pakiet wizualizacji sieci pasujący do mojego projektu, ale wydaje się, że wszystkie wykorzystują dane o połączeniu krawędzi lub węzłów i udostępniają sieć w oparciu o określony algorytm układu. Moje dane są inne. Mam współrzędne węzłów i chcę ustalić pewne krawędzie między niektórymi z nich. W moich danych węzły mają swoje ustalone lokalizacje i nie można ich przenosić.
Wreszcie zawęziłem pakiety do ggvis
i ggplot2
. ggvis
jest nowy i świeży, oprócz celowego zaprojektowania interaktywnych fabuł. Ale dowiedziałem się, że ggplot2+Shiny
może również produkować interaktywne wykresy. (Czy to prawda?) Poza tym doszedłem do wniosku, że ggplot2
możliwości są bardziej zróżnicowane i dojrzałe niż ggvis
: na przykład ggplot2
ma funkcję powiększania, podczas gdy jej ggvis
nie ma. Co ważniejsze, ponieważ ggvis
rośnie i zmienia się, nie chcę poświęcać dużo czasu na pracę, która z czasem stanie się technicznie przestarzała lub popsuta. Myślałem, że tak jest, jeśli koduję na podstawie ggvis
.
Czy możesz teraz ocenić mój wybór ( ggplot2+shiny
) i poinformować mnie o możliwości zrobienia z nim tego, co chcę?
Ponieważ nie znałem żadnego z wymienionych pakietów, zacząłem uczyć się ggplot2
z książki Wickhama i uwielbiam to! Ale boję się spędzić kilka tygodni i dowiedzieć się, że ten niesamowity pakiet nie może zrobić tego, co chcę, nawet przy pomocy Shiny
.
PS: Chcę umieścić końcowy kod na github, aby prawdopodobni użytkownicy mogli go pobrać i uruchomić. Dlatego nie muszę tworzyć aplikacji internetowej, nie ma potrzeby tworzenia żadnej strony internetowej ani umieszczania interaktywnej mapy online. Potrzebuję tylko interaktywnej fabuły, którą można uruchomić z Rstudio.
źródło
igraph
czy D3?Odpowiedzi:
Cóż, minęło wiele miesięcy od tej prośby o pomoc. Piszę tę odpowiedź na własną prośbę, aby podzielić się swoim doświadczeniem. Nauczyłem się
ggplot2
i wtedyggvis
równieżShiny
.Shiny
mogę pracować z nimi oboma, ale wggvis
porównaniu do nich znalazłem bardziej uporządkowany i przejrzystyggplot2
. Coś, czego można się spodziewać jako pierwszego, opracowuje się na podstawie doświadczeń rozwojowych drugiego. Co więcej,ggvis
wydaje się znacznie szybszy niżggplot2
w szybkim generowaniu wykresów / wykresów, wydaje się znacznie bardziej odpowiedni do „Błyszczącego” i tworzenia apletu. Negatywnym punktem jest jednak brak wielu funkcji,ggvis
ponieważ pakiet jest w fazie rozwoju i nie jest jeszcze dojrzały.I wiele dzięki komentarzom tutaj. Sprawdziłem
Gephi
, to by nie pomogło. Stworzyłem mój aplet, który działa naprawdę dobrze, jednak w końcu dotarłem do tego punktu, że muszę użyć bardziej zaawansowanych narzędzi, takich jakd3js
, jak już sugerowano.źródło
Czas leci! Po 2 latach doświadczenia zawodowego odpowiadam teraz na moje pytanie z lepszym zrozumieniem Shiny, R i interaktywnej wizualizacji.
Fabuła jest zdecydowanie najlepszą odpowiedzią. Może być łatwo wykorzystany do konwersji ggplotly () wykresów statycznych ggplot2 lub bezpośrednio przez naukę logiki stojącej za funkcjami Plotly.
Ten drugi przypadek jest sugerowany dla aplikacji z różnorodnymi wykresami.
źródło