Jestem nowicjuszem w wizualizacjach. Obecnie regularnie napotykam dane oparte na wykresach, które muszę wizualizować. Jednak różne typy danych wymagają innych układów. A ponieważ nie mam wystarczającego doświadczenia, nie znam różnych algorytmów układu wykresów.
Chciałbym mieć listę algorytmów układu wykresu z pseudokodem lub kodem (w dowolnym języku), które Mogę się odwołać, implementując jakiś wykres.
Komentarze
- Myślę, że StackOverflow da lepsze odpowiedzi.
Odpowiedź
Możesz zacząć od Wikipedii , pakietu R igraph
ma kilka algorytmów, które mogą zapewniać dobre wskazówki / odniesienia, w tym layout.random, layout.circle, layout.sphere, layout.fruchterman.reingold, layout.kamada.kawai, layout.spring, layout .reingold.tilford, layout.fruchterman.reingold.grid, layout.lgl, layout.svd i layout.norm
Odpowiedź
Jeśli interesują Cię same algorytmy, a nie oprogramowanie, które po prostu to zrobi (których jest wiele), zapoznaj się z niektórymi artykułami Yifan Hu , które stanowią przyjemne wprowadzenie do niektórych typów algorytmów (nie są wyczerpujące).
Odpowiedź
Gibson, Faith i Vickers napisali papier porównujący różne techniki układania wykresów relacyjnych, analizując, gdzie się wyróżniają, a gdzie słabną. Chociaż nie zawierają pseudokodu, zapewniają dobry przegląd, którego można następnie użyć do wyszukiwania określonych algorytmów.
Komentarze
- Link tutaj linki do tego pytania (chyba autor popełnił błąd) – artykuł z 2013 roku można znaleźć tutaj
Odpowiedź
- Algorytm pozycjonowania z siłą sprężyny i siłą elektryczną, jak wyjaśniono w artykule Efektywne i wysokiej jakości rysowanie wykresów sterowanych siłą autorstwa Yifana Hu.
- Rysunek drzewa Buchheima
- Model sprężyny / odpychania
- Majorizacja naprężeń
- Algorytm układu widmowego
i wiele więcej z Julią kod tutaj
Próbuję napisać część z nich w Javie. Jest artykuł zatytułowany Graph Drawing and Analysis Library oraz Specyficzny dla domeny język specyfikacji układu wykresów autorstwa Renata Vaderna, Željko Vuković, Igor Dejanović i Gordana Milosavljević, w Porównajmy swoją bibliotekę z innymi bibliotekami, takimi jak JUNG .
Tam jest tam wystarczająco dużo kodu, aby zacząć.