ggvis vs. ggplot2 + Shiny; który wybrać do interaktywnej wizualizacji?

10

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.x,yn(n/2))2)

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 ggvisi ggplot2. ggvisjest nowy i świeży, oprócz celowego zaprojektowania interaktywnych fabuł. Ale dowiedziałem się, że ggplot2+Shinymoże również produkować interaktywne wykresy. (Czy to prawda?) Poza tym doszedłem do wniosku, że ggplot2możliwości są bardziej zróżnicowane i dojrzałe niż ggvis: na przykład ggplot2ma funkcję powiększania, podczas gdy jej ggvisnie ma. Co ważniejsze, ponieważ ggvisroś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ę ggplot2z 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.

Shahin
źródło
Witamy na stronie! Próbowałeś igraphczy D3?
Dawny33
Dzięki! Sprawdziłem, co może dla mnie zrobić igraph, i nie znalazłem tego w zgodzie z danymi, które posiadam. O ile rozumiem, igraph wizualizuje sieć na podstawie danych połączonych wierzchołków (lub podobnych danych o krawędziach). W oparciu o niektóre algorytmy i priorytety, igraph lokalizuje wierzchołki na wykresie zgodne z podanymi danymi. Ale chcę, aby wierzchołki były dokładnie w odpowiadających im współrzędnych, które mam w zestawie danych. Nie chcę, aby pakiet wybrał ich układ i lokalizację.
Shahin,
Dlaczego nie d3js.org ? Wygląda na to, że masz bardzo szczególne wymagania. D3 sprawia, że ​​praca z SVG jest niezwykle łatwa.
Ricardo Cruz,
Próbowałeś gephi?
MM
Czy możesz podać link do pytania CrossVal.
Jim

Odpowiedzi:

4

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ę ggplot2i wtedy ggvisrównież Shiny. Shinymogę pracować z nimi oboma, ale w ggvisporównaniu do nich znalazłem bardziej uporządkowany i przejrzysty ggplot2. Coś, czego można się spodziewać jako pierwszego, opracowuje się na podstawie doświadczeń rozwojowych drugiego. Co więcej, ggviswydaje się znacznie szybszy niż ggplot2w 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, ggvisponieważ 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 jak d3js, jak już sugerowano.

Shahin
źródło
0

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.

Shahin
źródło