GraphViz pro .NET: generování „pěkných“ grafů ve WPF

GraphViz je software pro vizualizaci grafů. Může tedy sloužit například k „přehlednému“ zobrazení grafu přátel na Facebooku. GraphViz jako takový poskytuje pouze program pro příkazovou řádku, pomocí kterého lze grafy generovat do různých grafických formátů nebo do textového formátu reprezentujícího informace o layoutu. Pokud bychom chtěli takový graf zobrazit ve WPF, můžeme použít komponentu Image, ale co kdybychom chtěli, aby součástí vygenerovaného grafu byly i „živé“ prvky, například klikatelné tlačítka, select boxy a podobně? V takovém případě je tu Graphviz4Net, který umí zpracovat textový výstup GraphVizu a aplikovat informace o layoutu daného grafu na libovolné WPF komponenty.

Graf přátel vizualizovaný ve WPF pomocí Graphviz4Net

Jak funguje GraphViz

Samotný GraphViz (tedy nikoliv Graphviz4Net) se používá zhruba následovně. Stačí vytvořit textovou reprezentaci grafu, který chceme vizualizovat. K tomuto účelu slouží jazyk DOT.

digraph G {
	node [shape=rect];
	node1 [label="A", width=2, height=1];
	node2 [label="B"];
	node3; node5;
	node1 -> node2 [label="Edge from A to B"];
	node3 -> node1; node3 -> node5;
	node1 -> node5; node5 -> node2;
}

Potom stačí použít utilitu dot, která je součástí GraphViz.

dot -Tpng graph.gv > graph.png

A výsledný obrázek vypadá následovně:

Graphviz4Net

Graphviz4Net umožňuje použít GraphViz pro vizualizaci grafů ve WPF. Uzly grafu mohou být libovolné WPF komponenty, i všechny další prvky grafu je možné customizovat. Graphviz4Net podporuje pod-grafy (ohraničené komponenty v grafu), hrany mezi pod-grafy, popisky u hran, popisky u konců hran a různé tvary konců hran. Více informací o Graphviz4Net, včetně příkladu použití, lze získat na domácí stránce projektu.

Další ukázka použití Graphviz4Net ve WPF

Post a Comment

Your email is never published nor shared. Required fields are marked *