Biblioteka grafów .NET? [Zamknięte]


92

Szukam bibliotek Graph dla .net. Czy są jakieś?

ps: Mam na myśli biblioteki GRAPH, a nie biblioteki grafiki ani wykresów!

edytuj: Mam na myśli wykresy, z teorii grafów: (źródło: sourceforge.net )tekst alternatywny

Potrzebuję go również do rysowania.


Może mogłoby się przydać: github.com/komorra/NodeEditorWinforms
komorra

Link do zdjęcia wydaje się być uszkodzony (teraz przekierowuje do czegoś innego)
UuDdLrLrSs,

Odpowiedzi:



16

Pracuję w zespole NDepend i przeszliśmy z GraphViz na MsAgl ( Microsoft Automatic Graph Layout ) we wrześniu 2008. Licencja MsAgl umożliwia komercyjne wykorzystanie. Oto kilka przykładowych zdjęć wykresów MsAgl zintegrowanych z NDepend (wszystko jest interaktywne, węzły są ruchome / wybieralne / usuwalne / klikalne, krawędzie są edytowalne / wybieralne / wymienne / klikalne, układ można powiększać, a także, chociaż mógłby być bardziej przejrzysty API MsAgl jest wystarczająco czyste, aby z nim pracować):

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj


Może również grać z AGL na Rise4fun.com/Agl i zobaczyć wykresy innych osób na Rise4fun.com/rest/samples/rss/Agl
George Birbilis

2
Zwróć uwagę, że MSAGL jest teraz OpenSource na licencji MIT na GitHub: github.com/Microsoft/automatic-graph-layout i wydaje się, że jest utrzymywany, ponieważ pewna poprawka do wersji Silverlight została niedawno wypchnięta
George Birbilis

Jeśli chodzi o wypróbowanie AGL na stronie Rise4Fun, o której wspomniałem, być może jest to prosta opcja do burzy mózgów, ale wpisujesz tam tylko wykres w formie tekstowej, a etykiety, których używasz dla węzłów, są używane jako identyfikatory w tej składni tekstu, więc myślę, że ty nie może mieć węzła z tą samą etykietą (np. Dom) w dwóch miejscach na wykresie. Wydaje się, że możesz również użyć etykiet dla krawędzi wykresu (dla linków), używając składni pokazanej na Rise4fun.com/Agl/fsm (naciśnij przycisk PLAY, a następnie przewiń w dół, aby zobaczyć, jaki wykres jest generowany)
George Birbilis

Skąd mogę pobrać stabilną wersję binarną? Nie chcę tworzyć każdego źródła o nieznanej jakości.
Thomas Weller

Myślę, że tutaj github.com/Microsoft/automatic-graph-layout nie jestem pewien, czy uwzględniono wersję binarną
Patrick z zespołu NDepend

12

Twój poprzedni post został usunięty, postaram się udzielić bardziej złożonej odpowiedzi na pytanie. Najwyższa odpowiedź nie jest już całkiem aktualna, ponieważ biblioteka Graph # jest mocno przestarzała.

Polecam sprawdzić kombinację GraphX i Quickgraph . GraphX ​​jako silnik renderujący i Quickgraph jako składnik zarządzania wykresami i operacji matematycznych.

Biblioteka GrpahX jest zakodowana dla WPF 4.0 i METRO. Zapewnia wiele funkcji, których brakuje w Graph #:

  • Poprawiona wydajność renderowania dużych wykresów
  • Obsługa routingu brzegowego i grupowania, wiele innych opcji brzegowych
  • Ulepszona kontrola powiększenia, która obsługuje okno przeglądu i wybór wielu wierzchołków
  • Bogata dokumentacja i próbki

Również GraphX ​​obsługuje wszystkie oryginalne algorytmy układu z Graph #. Jeśli masz jakieś pytania, odwiedź http://panthernet.ru/forum !


Łącze GraphX ​​nie działa.
xabush

Nie, właśnie miałem poważne problemy z wirusami na hostingu. Fora są online.
Alexander Smirnov

9

Jest QuickGraph , działa całkiem nieźle i ma większość podstawowych algorytmów.


Ładnie, ale wydaje się, że nie jest w stanie narysować wykresów.
pożarł elysium

2
Prawdziwe. Odniosłem wrażenie, że pytasz o obliczanie wykresów zamiast ich rysowania. Jednak generuje dane w formatach używanych przez kilka różnych narzędzi renderujących.
Doug McClean,


5

Możesz użyć interfejsu API NodeXL firmy Microsoft Research pod adresem : http://www.codeplex.com/NodeXL, ale podobne pytanie zostało zadane pod adresem : /programming/44090/do-you-know-any -graph-visualization-libraries-for-net /


Brzmi nieźle, ale z tego, co widziałem teraz na ich przykładach, wydaje się, że w zasadzie musisz narysować wszystko sam, co byłoby problemem, ponieważ mam tysiące węzłów do narysowania.
pożarł elizjum

Nie jestem do końca pewien, co masz na myśli mówiąc `` narysować wszystko sam ''. NodeXL jest zarówno rozszerzeniem programu Excel, ale także interfejsem API dla .Net i obsługuje algorytmy układów wykresów, takie jak układ ukierunkowany na siłę (Fruchterman-Reingold lub Harel-Koren szybka multiscale) lub układ geometryczny (okrąg, siatka, spirala itp.). Sam go używałem i nie ma zbyt wiele pracy „ręcznej”
DrDee

Mówiłem o czymś innym, pomyliłem się z inną odpowiedzią. Ale wygląda na to, że NodeXL wymaga Office 2007. Nie mam nawet zainstalowanego pakietu Office.
pożarł elysium

Już to zainstalowałem. Jak mam go teraz używać z C #?
pożarł elysium

upewnij się, że instalujesz bibliotekę API, a nie rozszerzenie Office Excel. API jest dostępne pod adresem: codeplex.com/NodeXL/Release/… Przestrzeń nazw NodeXL to Microsoft.NodeXL, więc możesz ją zaimportować za pomocą: import Microsoft.NodeXL.Core import Microsoft.NodeXL.Visualization (myślę, że te dwa są najbardziej ważne biblioteki). Upewnij się tylko, że ścieżka do twojego IDE zawiera folder NodeXL.
DrDee

3

Nie próbowałem jeszcze tego, ale natrafiłem na interesującą ofertę MS Research dotyczącą wizualizacji ukierunkowanych wykresów Microsoft Automatic Graph Layout .

Spróbuj użyć „wykresu skierowanego” lub „dwuznaku” jako wyszukiwanych haseł. Dostaję dużo hitów.


3

Spójrz na Satsumę . Napisany w C #, głównie algorytmach grafowych, ale jest też trochę podstawowego układu wykresów i rysunków.



0

Czy to nie zawiera tylko kilku przykładów algorytmów grafowych zbudowanych na strukturach danych kolekcji? Domyśliłbym się, że pytanie dotyczy czegoś w rodzaju biblioteki C ++ BGL ( boost.org/doc/libs/1_40_0/libs/graph/doc/index.html ).
Pontus Gagge

Masz rację Pontus. W przykładach podręcznika użytkownika znajduje się klasa Graph, ale nie jest ona częścią biblioteki. To przykład zbudowany na tym. I to niechlujne, niekompletne, patrząc na źródło.
Paul Sasik,

Ale można go użyć, cóż, jest to podejście .......
jjchiw

0

Kolego, myślę, że tego potrzebujesz!

W tym artykule przedstawiono ogólną bibliotekę wykresów, w 100% C #. Ta biblioteka jest próbą przeniesienia biblioteki Boost Graph Library (BGL) z C ++ do C #.


1
Tak, ale ma kilka problemów podczas próby rysowania wykresów, z tego, co przeczytałem w komentarzach codeproject.
pożarł elysium

0

Użyliśmy ZedGraph, który jest projektem Open Source napisanym w C #, więc możesz go dostosować, jeśli uznasz, że jest to konieczne. Służyło naszym potrzebom, które brzmią, jakby były bardzo zbliżone do tego, co opisałeś. Jest nawet strona wiki projektu z kilkoma całkiem dobrymi przykładami.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.