.NET Grafikbibliothek herum? [geschlossen]

91

Ich suche nach Graph-Bibliotheken für .net. Gibt es welche?

ps: Ich meine GRAPH-Bibliotheken, keine Grafik- oder Diagrammbibliotheken!

edit: Was ich meine, sind Graphen aus der Graphentheorie: (Quelle: sourceforge.net )Alt-Text

Ich brauche es auch, um Zeichenfähigkeiten zu haben.

verschlungenes Elysium
quelle
Vielleicht könnte es nützlich sein: github.com/komorra/NodeEditorWinforms
komorra
Der
Bildlink

Antworten:

43

Verwenden Sie eine Kombination aus QuickGraph ( GitHub , CodePlex ) und Graph # für WPF ( GitHub Fork , CodePlex ) - beides erstklassige Bibliotheken. Sie funktionieren wirklich gut für mich, aber die Dokumentation für Graph # ist fast nicht vorhanden.

Matt Breckon
quelle
16

Ich arbeite im NDepend-Team und wir haben im September 2008 von GraphViz zu MsAgl ( Microsoft Automatic Graph Layout ) gewechselt. Die MsAgl-Lizenz ermöglicht die kommerzielle Nutzung. Hier sind einige Beispielbilder von in NDepend integrierten MsAgl-Diagrammen (alles ist interaktiv, Knoten sind beweglich / auswählbar / entfernbar / klickbar, Kanten sind bearbeitbar / auswählbar / entfernbar / klickbar, das Layout ist zoombar und könnte auch sauberer sein Die MsAgl-API ist sauber genug, um damit zu arbeiten.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Patrick vom NDepend-Team
quelle
Kann auch mit AGL unterrose4fun.com/Agl spielen und Grafiken von anderen dort unterrose4fun.com/rest/samples/rss/Agl
George Birbilis
2
Beachten Sie, dass MSAGL jetzt OpenSource unter MIT-Lizenz bei GitHub ist: github.com/Microsoft/automatic-graph-layout und anscheinend beibehalten wird, da kürzlich einige Korrekturen für die Silverlight-Version vorgenommen wurden
George Birbilis
In Bezug auf das Ausprobieren von AGL auf der von mir erwähnten Rise4Fun-Site ist dies möglicherweise eine einfache Option für das Brainstorming, aber Sie geben das Diagramm dort nur in Textform ein und die Beschriftungen, die Sie für Knoten verwenden, werden in dieser Textsyntax als IDs verwendet Es kann keinen Knoten mit derselben Bezeichnung (z. B. House) an zwei Stellen im Diagramm geben. Anscheinend können Sie auch Beschriftungen für Kanten des Diagramms (für die Links) verwenden. Verwenden Sie dazu die Syntax unterrose4fun.com/Agl/fsm (drücken Sie dort die PLAY-Taste und scrollen Sie dann nach unten, um zu sehen, welches Diagramm generiert wird)
George Birbilis
Wo kann ich eine stabile Binärversion herunterladen? Ich möchte nicht jede Quelle unbekannter Qualität bauen.
Thomas Weller
Ich denke hier github.com/Microsoft/automatic-graph-layout nicht sicher, ob Binärversion enthalten ist
Patrick vom NDepend Team
12

Wenn mein vorheriger Beitrag gelöscht wird, werde ich versuchen, eine komplexere Antwort auf die Frage zu geben. Die oberste Antwort ist nicht mehr ganz aktuell, da die Graph # -Bibliothek stark veraltet ist.

Ich werde empfehlen, die Kombination von GraphX und Quickgraph zu überprüfen . GraphX ​​als Rendering-Engine und Quickgraph als Komponente für die Grafikverwaltung und die mathematische Operation.

Die GrpahX-Bibliothek ist für WPF 4.0 und METRO codiert. Es bietet viele Funktionen, die Graph # fehlt:

  • Verbesserte Renderleistung für große Diagramme
  • Unterstützung für Edge-Routing und -Bündelung, viele andere Edge-Optionen
  • Verbesserte Zoomsteuerung, die das Übersichtsfenster und die Auswahl mehrerer Scheitelpunkte unterstützt
  • Umfangreiche Dokumentation und Beispiele

Außerdem unterstützt GraphX ​​alle ursprünglichen Layoutalgorithmen von Graph #. Bitte besuchen Sie http://panthernet.ru/forum, wenn Sie Fragen haben!

Alexander Smirnov
quelle
Der GraphX-Link ist tot.
Xabush
Nein, ich hatte gerade ernsthafte Probleme mit Viren beim Hosting. Foren sind online.
Alexander Smirnov
9

Es gibt QuickGraph , es funktioniert ziemlich gut und hat die meisten grundlegenden Algorithmen.

Doug McClean
quelle
Schön, scheint aber nicht in der Lage zu sein, die Grafiken zu zeichnen.
verschlungenes Elysium
2
Wahr. Ich hatte den Eindruck, dass Sie nach dem Rechnen mit den Diagrammen fragten, anstatt sie zu zeichnen. Die Ausgabe erfolgt jedoch in Formaten, die von verschiedenen Rendering-Tools verwendet werden.
Doug McClean
5

Schauen Sie sich yWorks an: http://www.yworks.com/en/index.html

Soweit ich gesehen habe, gibt es da draußen nicht viele gute Bibliotheken.

WIE
quelle
1
Scheint großartig, aber 7k für eine Bibliothek sind ... zu viel für mich.
verschlungenes Elysium
Erstaunlicherweise ist das eine der billigeren Optionen!
AS
1
Es ist 7k, aber ich hatte jemals mehr Spaß mit einer API als mit den yWorks .NET- und WPF-Bibliotheken.
Matthew Ruston
5

Sie können die NodeXL-API von Microsoft Research unter folgender Adresse verwenden: http://www.codeplex.com/NodeXL. Eine ähnliche Frage wurde jedoch gestellt unter: /programming/44090/do-you-know-any -graph-visualization-library-for-net /

DrDee
quelle
Hört sich gut an, aber nach dem, was ich jetzt anhand ihrer Beispiele gesehen habe, scheint es, dass Sie im Grunde alles selbst zeichnen müssen, was ein Problem wäre, da ich Tausende von Knoten zum Zeichnen habe.
verschlungenes Elysium
Ich bin mir nicht ganz sicher, was Sie unter "alles selbst zeichnen" verstehen. NodeXL ist sowohl eine Erweiterung für Excel als auch eine API für .Net und unterstützt Algorithmen für Diagrammlayouts wie erzwungenes Layout (Fruchterman-Reingold oder Harel-Koren) schnelle Multiskala) oder ein geometrisches Layout (Kreis, Gitter, Spirale usw.). Ich habe es selbst benutzt und es gibt nicht viel 'manuelle' Arbeit
DrDee
Ich sprach von einer anderen Sache, ich wurde mit einer anderen Antwort verwechselt. Aber anscheinend benötigt NodeXL Office 2007. Ich habe noch nicht einmal Office installiert.
verschlungenes Elysium
Ich habe das bereits installiert. Wie soll ich es nun von c # aus verwenden?
verschlungenes Elysium
Stellen Sie sicher, dass Sie die API-Bibliothek und nicht die Office Excel-Erweiterung installieren. Die API ist verfügbar unter: codeplex.com/NodeXL/Release/… Der Namespace von NodeXL ist Microsoft.NodeXL, sodass Sie sie importieren können mit: import Microsoft.NodeXL.Core import Microsoft.NodeXL.Visualization (ich denke, diese beiden sind die meisten wichtige Bibliotheken). Stellen Sie einfach sicher, dass der Pfad Ihrer IDE den NodeXL-Ordner enthält.
DrDee
3

Ich habe es noch nicht ausprobiert, bin aber auf ein interessantes Angebot von MS Research zur Visualisierung gerichteter Grafiken gestoßen . Microsoft Automatic Graph Layout .

Versuchen Sie, "gerichtete Grafik" oder "Digraph" für Suchbegriffe zu verwenden. Ich bekomme viele Treffer.

Emmanuel
quelle
3

Schau dir Satsuma an . Geschrieben in C #, hauptsächlich Graph-Algorithmen, aber es gibt auch einige grundlegende Graph-Layouts und Zeichnungen.

szali
quelle
2

Check out http://quickgraph.codeplex.com/ Sie unterstützen die Visualisierung über DotViz und Glee.

Zur Visualisierung würde ich auch auschecken

http://flare.prefuse.org/

Obwohl es blinkt, scheint es sehr interessant zu sein, und sie haben zumindest eine Baumvisualisierung, obwohl Sie möglicherweise einige nicht gerichtete Grafiken herauslocken können.

JBland
quelle
0

Die generische C5-Sammlungsbibliothek für C # und CLI

jjchiw
quelle
Enthält das nicht nur einige Beispiele für Graph-Algorithmen, die auf den Sammlungsdatenstrukturen basieren? Ich hätte vermutet, dass die Frage nach etwas wie der C ++ BGL-Bibliothek fragt ( boost.org/doc/libs/1_40_0/libs/graph/doc/index.html ).
Pontus Gagge
Du hast recht, Pontus. In den Beispielen für das Benutzerhandbuch gibt es eine Graph-Klasse, die jedoch nicht Teil der Bibliothek ist. Es ist ein Beispiel, das darauf aufgebaut ist. Und eine unordentliche, unvollständige, wenn man sich die Quelle ansieht.
Paul Sasik
Aber es kann verwendet werden, nun, es ist wie ein Ansatz .......
jjchiw
0

Buddy Ich denke das ist was du brauchst!

Dieser Artikel enthält eine allgemeine Grafikbibliothek mit 100% C #. Diese Bibliothek ist ein Versuch, die Boost Graph Library (BGL) von C ++ nach C # zu portieren.

Autodidakt
quelle
1
Ja, aber es gibt einige Probleme beim Zeichnen der Diagramme, wie ich in den Kommentaren des Codeprojekts gelesen habe.
verschlungenes Elysium
0

Wir haben ZedGraph verwendet , ein Open Source-Projekt, das in C # geschrieben wurde, sodass Sie es optimieren können, wenn Sie es für notwendig halten. Es diente unseren Bedürfnissen, die so klingen, als ob sie dem, was Sie beschrieben haben, sehr nahe kommen. Es gibt sogar eine Wiki-Site für das Projekt mit einigen ziemlich guten Beispielen.

Walter
quelle