Jag är nybörjare i visualiseringar. Numera stöter jag regelbundet på grafbaserade data som jag behöver visualisera. Men olika typer av data kräver olika layouter. Och eftersom jag inte har tillräckligt med erfarenhet är jag inte medveten om de olika graflayoutalgoritmerna.
Jag skulle vilja ha en lista över diagramlayoutalgoritmer med pseudokod eller kod (på vilket språk som helst) som Jag kan hänvisa till när jag implementerar ett diagram.
Kommentarer
- Jag tror att StackOverflow ger dig bättre svar.
Svar
Du kan börja med Wikipedia , R-paketet igraph
har flera algoritmer som kan ge bra leder / referenser, inklusive 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 och layout.norm
Svar
Om du är intresserad av algoritmerna själva snarare än programvara som bara gör det (av vilka det finns många), kolla in några av papper från Yifan Hu , som ger en fin introduktion till vissa typer av algoritmer (inte uttömmande).
Svar
Gibson, Faith och Vickers skrev en papper som jämför olika relationella graflayouttekniker, analyserar var de utmärker sig och var de vacklar. Medan de inte innehåller pseudokod ger de en bra översikt som du sedan kan använda för att söka efter specifika algoritmer.
Kommentarer
- Länken här länkar till den här frågan (jag antar att författaren gjorde ett misstag) – du hittar 2013-tidningen här
Svar
- Fjäderelektrisk styrningsplaceringsalgoritm som förklaras i effektiv och högkvalitativ styrd grafritning av Yifan Hu.
- Buchheim Tree Drawing
- Spring / Repulsion Model
- Stress Majorization
- Algoritm för spektral layout
och många fler med Julia kod här
Jag försöker skriva en del av det med Java. Det finns ett papper med titeln Graph Drawing and Analysis Library och Dess domänspecifika språk för diagramlayoutspecifikationer av Renata Vaderna, Željko Vuković, Igor Dejanović och Gordana Milosavljević där ey jämföra deras bibliotek med andra bibliotek som JUNG .
Där det finns tillräckligt med kod för att komma igång.