Jeg er nybegynder i visualiseringer. I dag støder jeg regelmæssigt på grafbaserede data, som jeg har brug for at visualisere. Dog kræver forskellige typer data forskellige layouts. Og da jeg ikke har tilstrækkelig erfaring, er jeg ikke opmærksom på de forskellige graflayoutalgoritmer.
Jeg vil gerne have en liste over algoritmer til graflayout med pseudokode eller kode (på ethvert sprog), som Jeg kan henvise til, når jeg implementerer en eller anden graf.
Kommentarer
- Jeg tror, StackOverflow giver dig bedre svar.
Svar
Du kan starte med Wikipedia , R-pakken igraph
har adskillige algoritmer, der kan give pæne kundeemner / referencer, herunder 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 og layout.norm
Svar
Hvis du er interesseret i algoritmerne i stedet for software, der bare gør det (hvoraf der er mange), skal du tjekke nogle af papirerne fra Yifan Hu , som giver en flot introduktion til visse typer algoritmer (ikke udtømmende).
Svar
Gibson, Faith og Vickers skrev en papir , der sammenligner forskellige relationelle graflayoutteknikker, analyserer hvor de udmærker sig, og hvor de vakler. Selvom de ikke indeholder pseudokode, giver de et godt overblik, som du derefter kan bruge til at søge efter specifikke algoritmer.
Kommentarer
- Linket her links til dette spørgsmål (jeg antager, at forfatteren begik en fejl) – du kan finde papiret fra 2013 her
Svar
- Fjederelektrisk kraftstyret placeringsalgoritme som forklaret i effektiv og højkvalitetsstyret graftegning af Yifan Hu.
- Buchheim Tree Drawing
- Spring / Repulsion Model
- Stress Majorization
- Algoritme til spektral layout
og mange flere med Julia kode her
Jeg prøver at skrive noget af det ved hjælp af Java. Der er et papir med titlen Graph Drawing and Analysis Library og Dets domænespecifikke sprog for grafernes layoutspecifikationer af Renata Vaderna, Željko Vuković, Igor Dejanović og Gordana Milosavljević, hvor ey sammenligne deres bibliotek med andre biblioteker som JUNG .
Der der er nok kode der for at komme i gang.