Najlepszy sposób na wizualizację ścierania za pomocą R?

15

Na tej stronie niedawno odkryłem diagramy Sankeya, świetny sposób na wizualizację tego, co dzieje się w tradycyjnym schemacie blokowym.

Oto dobry przykład diagramu Sankeya autorstwa George'a M. Whitesidesa i George'a W. Crabtree , Nie zapomnij o długoterminowych badaniach podstawowych w dziedzinie energii Source; Nie zapomnij o długoterminowych podstawowych badaniach w dziedzinie energii , nauki 9 lutego 2007 r .: t. 315. nr 5813, s. 796–798.

Po tym, jak zorientowałem się, że nie ma pakietu R Sankeya, znalazłem skrypt R online , niestety ten skrypt jest dość surowy i nieco ograniczony. Z wielką nadzieją poprosiłem o pakiet R Sankeya lub bardziej dojrzałą funkcję w przepełnieniu stosu , ale ku mojemu zaskoczeniu wydaje się, że nie mamy dojrzałej funkcji do tworzenia diagramów Sankeya w R.

Po tym, jak opublikowałem nagrodę, Geek On Acid był na tyle miły, że zasugerował mały hack na istniejącym skrypcie, który sprawił, że działał mniej więcej w moim określonym celu.

Ulepszony skrypt R wytworzył ten schemat, Geek na schemacie R-Sankeya z Acid Źródło; stackoverflow.com .

Ale czy brak pakietu R wskazuje, że diagramy Sankeya nie są tak niesamowitym sposobem na wizualizację ścierania za pomocą R w przepływie danych à la przedstawionym na powyższym schemacie (patrz pytanie o przepełnienie stosu dla danych i kodu R. Być może jest lepszy sposób na wizualizację ścierania.

Jak myślisz, co jest najlepszym sposobem na wizualizację ścierania w przepływie danych przy użyciu R?

Eric Fail
źródło
7
To jest bardzo trudne , aby uzyskać schemat wyglądać dobrze w każdej sposób zautomatyzowany (pierwszy przykład był prawdopodobnie wykonane przez artystę ręcznie umieszczając węzły). Trudny w programowaniu nie ma nic wspólnego z jego użytecznością jako narzędziem graficznym. Więcej motywacji znajdziesz w tym moim poście na stronie GIS na temat wizualizacji przepływów. Podaję również przykłady zestawów i wykresów punktowych w odpowiedzi na tę stronę.
Andy W
@AndyW, dziękuję za bardzo przydatny komentarz. Zbadam różne metody i eksperymentuję z moimi danymi. Dzięki.
Eric Fail
Ten górny schemat jest świetnym pomysłem, ale wydaje mi się, że suma źródeł nie jest równa sumie zlewów (przy założeniu, że wysokość określa wielkość)
naught101
Ach .. nieważne, źle to odczytałem ... jaśniejsze fragmenty źródeł to tylko etykiety, a nie część danych. Trochę mylące ..
naught101

Odpowiedzi:

4

Zgadzam się z @gung. Wydaje mi się, że diagram Sankeya jest dobrym przykładem tego, w jaki sposób technika może pomóc. Choć jest to skomplikowane, kontekst (wkład i wydatek energii) jest również złożony i trudno wymyślić lepszy sposób wizualizacji ścieżek wejścia-wyjścia-działania-jak-nowych-wejść dla wielu kategorii zastosowań.

Teraz, dla zamieszczonego przez ciebie przykładu ścierania, jak zauważyli inni, nie jest pomocne używanie diagramu Sankeya. Myślę, że musisz opublikować pełny zestaw zmiennych, jeśli chcesz mieć dobre rekomendacje dotyczące alternatywnych wizualizacji. Jeśli chcesz po prostu pokazać różnice w źródłach ścierania między witrynami a klinicystami, seria wykresów punktowych o małych wielokrotnościach może być najłatwiejsza do zrozumienia dla odbiorców i do wdrożenia ( patrz ten przykład , gdzie w twoim przypadku grupy mogą być miejsca, elementy w grupach byłyby przyczyną ścierania, a oś pozioma wynosiłaby 0-100%).

Jeśli diagram Sankeya jest czymś, czego chcesz użyć i chcesz zagłębić się w inny język wysokiego poziomu, istnieje ładny przykład (z kodem) w galerii pakietu kreślącego Python, matplotlib.

Josh Hemann
źródło
3

Niekoniecznie zakładałbym, że brak metody oznacza, że ​​metoda jest nieważna lub nieprzydatna. W końcu dla wszystkich metod, które obecnie istnieją w R, był czas (całkiem możliwe, że niedawno - R ma tylko ~ 10 lat), kiedy nie było dla niego pakietu.

Myślę jednak, że istnieje wiele sposobów wizualizacji danych, takich jak ścieranie. Moją pierwszą myślą, patrząc na twój wykres, jest to, że można go przedstawić za pomocą wykresu punktowego . Istnieją również inne możliwości. Dodatkowa funkcjonalność schematu Sankeya zacznie obowiązywać, gdy w pewnym momencie dojdzie do osłabienia z powodu konkretnej przyczyny, a następnie z powodu tej samej przyczyny później, z innymi wejściami i wyjściami pomiędzy nimi. Trudniej byłoby to przedstawić za pomocą standardowych wykresów (trudniej jest śledzić nawet wykres Sankeya - na przykład ten na górze strony zajmuje sporo pracy). Ponieważ wydaje się, że tego nie masz, schemat Sankeya wydaje się ładny, ale przesadzony.

gung - Przywróć Monikę
źródło
1
Pierwsza podana grafika to niesamowite IMO. Ma wiele szczegółów, które trudno byłoby uchwycić tak intuicyjnie w serii wykresów punktowych. Również diagram Sankeya jest dobry do wizualizacji przepływów zi do różnych węzłów (ponowne połączenie w energię zużytą i energię utraconą).
Andy W
@ AndyW, nie zamierzam zapukać do tej postaci. To dużo pracy, aby przeczytać głównie b / c, zawiera wiele informacji. To, że przyciąga cię i trzyma cię tam przez jakiś czas, może być prawdziwym plusem - nie chciałem, żeby mój opis był negatywny. OTOH, dane PO są na tyle proste, że mogą je przekazać prostsze wykresy.
Gung - Przywróć Monikę
Dobra uwaga, jeśli dane PO nie są bardziej skomplikowane niż podane, to prawdopodobnie więcej kłopotów niż jest to warte! Nie chciałbym nawet myśleć o przekształceniu oryginalnego diagramu energii w serię wykresów punktowych.
Andy W
@gung, Dziękujemy za odpowiedź na mój post. Zgadzam się, że brak metody nie powinien być traktowany jako ostateczny znak, że metoda nie jest dobra ani przydatna, i zdecydowanie nie dałam op na diagramach Sankeya (SD). Jeśli chodzi o moje dane, to, co widzisz na schemacie, jest tylko najwyższym wymiarem moich danych, mam dane zebrane w 4 różnych lokalizacjach i przez 7 różnych klinicystów i chciałbym włączyć te informacje do mojego wykresu, jak jakiś rodzaj podzielić w ramach ogólnego przepływu. Może to wyglądać na przesadę w stosunku do bieżących danych, ale uważam, że SD przydałoby się, jeśli uwzględnię wszystkie moje zmienne.
Eric Fail
Przy większej złożoności diagram Sankeya jest prawdopodobnie najlepszym wyborem. Warto również poświęcić chwilę na przejrzenie niektórych postów @ AndyW, takich jak linki powyżej. Udzielił wielu dobrych odpowiedzi, które mogą być istotne. Na przykład, jeśli klikniesz jego imię, aby przejść do jego strony, a następnie kliknij tam tag wizualizacji danych, możesz przejrzeć jego posty.
Gung - Przywróć Monikę
1

Co powiesz na użycie kodu R do napisania pliku SVG z szerokością strzałek ustawioną zgodnie z danymi i prostym układem. Następnie załaduj do Inkscape i wygnij strzałki, dodaj etykiety itp. Do treści twojego serca, aby zrobić coś ładnego.

Oczywisty problem: musisz zmienić wszystkie swoje ustawienia wstępne w Inkscape, jeśli dane się zmienią (chociaż możesz być w stanie użyć swojego ładnego SVG z Inkscape jako szablonu i po prostu zastąpić nowe szerokości strzałek).

Ale szczerze mówiąc, jeśli ten wielobarwny bałagan kłębiących się zawijasów u góry jest dobrym diagramem Sankeya, nie chciałbym widzieć złego na pełnym brzuchu [chociaż wpatrywanie się w to jeszcze przez kilka minut dało mi wskazówkę na temat o co chodzi, dobra grafika nie powinna tego potrzebować].

Spacedman
źródło
2
Byłbym zainteresowany, aby zobaczyć lepszy sposób wizualizacji tych danych. Na tym wykresie jest wiele informacji (i wiele różnych zmiennych), więc oczywiście będzie to skomplikowane ...
naught101
2
Mikro mapy Dana Carra zajmują dużo czasu, aby przetrawić całą grafikę, podobnie jak każda szczegółowa mapa drogowa. Nie zawsze jest to zła rzecz. Zobacz post na blogu Jamesa Chesire'a, Wizualizacja szybkiego i wolnego myślenia .
Andy W