Biblioteka wizualizacji grafów w JavaScript
Mam strukturę danych, która reprezentuje ukierunkowany wykres i chcę dynamicznie renderować go na stronie HTML. Te wykresy będą zazwyczaj tylko kilka węzłów, może dziesięć na samym górnym końcu, więc moim zdaniem wydajność nie będzie wielka. Idealnie, chciałbym mieć możliwość podłączenia go do jQuery, aby użytkownicy mogli ręcznie dostosować układ, przeciągając węzły wokół.
Uwaga: nie szukam biblioteki Wykresów.
5 answers
Właśnie zebrałem to, czego możesz szukać: http://www.graphdracula.net
Jest to JavaScript z ukierunkowanym układem graficznym, SVG i można nawet przeciągać węzły wokół. Nadal wymaga pewnych poprawek, ale jest całkowicie użyteczny. Łatwo tworzysz węzły i krawędzie za pomocą kodu JavaScript:
var g = new Graph();
g.addEdge("strawberry", "cherry");
g.addEdge("cherry", "apple");
g.addEdge("id34", "cherry");
Użyłem wcześniej wspomnianej Biblioteki Raphael JS (przykład graffle) plus trochę kodu do algorytmu graficznego opartego na sile, który znalazłem w sieci (wszystko otwarte źródło, licencja MIT). Jeśli masz jakieś uwagi lub potrzebujesz pewnej funkcji, mogę ją wdrożyć, po prostu zapytaj!
Możesz też zajrzeć do innych projektów! Poniżej znajdują się dwa meta-porównania:
SocialCompare ma obszerną listę bibliotek, a linia "node / edge graph" będzie filtrować dla wizualizacji Wykresów.
DataVisualization.ch ocenił wiele bibliotek, w tym węzłowe / grafowe. Niestety nie ma bezpośredniego link więc będziesz musiał filtrować dla "graph":
Oto lista podobnych projektów (niektóre zostały już wymienione tutaj):
Czyste Biblioteki JavaScript
Vis.js obsługuje wiele typów wykresów sieci/krawędzi, a także linii czasowych i wykresów 2D/3D. Auto-layout, auto-clustering, sprężysty silnik fizyki, przyjazny dla urządzeń mobilnych, nawigacja na klawiaturze, układ hierarchiczny, animacja itp. mit licencjonowany i opracowany przez holenderską firmę specjalizuje się w badaniach nad samoorganizującymi się sieciami.
Cytoscape.js - interaktywna analiza i wizualizacja Wykresów z obsługą urządzeń mobilnych, zgodnie z konwencjami jQuery. Finansowany z dotacji NIH i opracowany przez @ maxkfranz (Zobacz jego odpowiedź poniżej) przy pomocy kilku uniwersytetów i innych organizacji.
JavaScript InfoVis Toolkit - JIT, interaktywny, Wielofunkcyjny framework do rysowania i układania Wykresów. Zobacz też na przykład drzewo hiperboliczne . Zbudowany przez Twittera dataviz architect Nicolas Garcia Belmonte i kupiony przez Sencha w 2010 roku.
D3.JS potężna wielozadaniowa biblioteka wizualizacji JS, następca Protovisa. Zobacz przykład wykresu skierowanego siłą oraz inne przykłady Wykresów w galerii .
Biblioteka wizualizacji js Plotly ' ego używa D3.js z wiązaniami JS, Python, R i MATLAB. Zobacz też przykład nexworkx w Ipythonie tutaj, Przykład interakcji człowieka tutaj i js Embed API.
-
Sigma.js lekka, ale potężna biblioteka do rysowania wykresów
-
JsPlumb {[3] } jQuery plug - in do tworzenia interaktywnych połączonych Wykresów
-
Sprężysty - algorytm układu grafu kierowanego siłą
-
Przetwarzam.JS Javascript port Biblioteki Processing by John Resig
Js Graph It - Drag ' n ' drop pola połączone liniami prostymi. Minimalny automatyczny układ linii.
GRAFFLE Raphaeljsa - interaktywny Graf przykład ogólnej wielozadaniowej biblioteki rysunków wektorowych. RaphaelJS nie może automatycznie układać węzłów; do tego potrzebujesz innej biblioteki.
-
JointJS Core - licencjonowana przez mpl biblioteka diagramowania open source Davida Durmana. Może być używany do tworzenia statycznych diagramy lub w pełni interaktywne narzędzia do tworzenia diagramów i kreatorów aplikacji. Działa w przeglądarkach obsługujących SVG. Algorytmy układu nie-zawarte w pakiecie głównym
Mxgraph wcześniej komercyjna biblioteka diagramów HTML 5, Teraz dostępna pod Apache v2. 0. mxGraph jest biblioteką bazową używaną w draw.io.
Biblioteki komercyjne
-
Gojs Interaktywne rysowanie i układ graficzny biblioteka
YFiles for HTML Commercial graph drawing and layout library
-
KeyLines Commercial js network visualization toolkit
-
ZoomCharts komercyjna wielofunkcyjna biblioteka wizualizacji
Opuszczone biblioteki
-
Cytoscape Web Embeddable js Network viewer (nie planowane nowe funkcje; zastąpiony przez Cytoscape.js)
Canviz JS renderer dla Wykresów Grafviz. porzucony we wrześniu 2013.
Arbor.JS wyrafinowane graficzne z ładną fizyką i eye-candy. Opuszczony w maju 2012. Istnieje kilka częściowo utrzymanych widełek.
Jssvggraph "najprostszy możliwy algorytm układu graficznego ukierunkowanego na siłę zaimplementowany jako biblioteka Javascript wykorzystująca obiekty SVG". Opuszczony w 2012 roku.
Jsdot Client side graph aplikacja do rysowania. porzucony w 2011 .
Protovis Graficzny Zestaw Narzędzi do wizualizacji (JavaScript). Zastąpiony przez d3.
Moo Wheel Interaktywna reprezentacja JS dla połączeń i relacji (2008)
-
JSViz 2007-era graph visualization script
-
Dagre układ graficzny dla JavaScript
Non-Javascript Biblioteki
-
Graphviz wyrafinowany język wizualizacji grafów
- Graphviz został skompilowany do Javascript przy użyciu Emscripten tutaj z online interaktywne demo tutaj
-
Flare piękne i potężne rysowanie wykresów oparte na Flashu
-
NodeBox Wizualizacja Wykresu Pythona
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:33
Zastrzeżenie: jestem twórcą Cytoscape.js
Cytoscape.js jest biblioteką wizualizacji wykresów HTML5. API jest wyrafinowane i działa zgodnie z konwencjami jQuery, w tym- selektory do zapytań i filtrowania (
cy.elements("node[weight >= 50].someClass")
robi wiele, czego można się spodziewać), - łańcuchowanie (np.
cy.nodes().unselect().trigger("mycustomevent")
), - funkcje podobne do jQuery do wiązania zdarzeń,
- elementy jako kolekcje (podobnie jak jQuery ma Kolekcje HTMLDomElements),
- rozszerzalność (można dodać układy, interfejs użytkownika, funkcje core i collection itd.),
- i więcej.
Jeśli myślisz o zbudowaniu poważnej webapp z wykresami, powinieneś przynajmniej rozważyć Cytoscape.js. Jest darmowy i open-source:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-13 21:03:12
JsVIS był całkiem ładny, ale powolny z większymi grafami i został porzucony od 2007 roku.
Prefuse to zestaw narzędzi programistycznych do tworzenia bogatych interaktywnych wizualizacji danych w języku Java. flare jest biblioteką ActionScript do tworzenia wizualizacji uruchamianych w programie Adobe Flash Player, porzuconą od 2012 roku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-13 09:47:19
W scenariuszu komercyjnym poważnym konkurentem na pewno jest yFiles dla HTML :
Oferuje:
- Łatwy import z niestandardowych danych (to interaktywne demo online wydaje się robić dokładnie to, czego szukał OP)
- Interaktywna Edycja do tworzenia i manipulowania diagramami za pomocą gestów użytkownika (Zobacz kompletny edytor )
- ogromny API programistyczne do dostosowywania każdego aspektu biblioteka
- wsparcie dla grupowania i zagnieżdżania (zarówno interaktywnych, jak i poprzez algorytmy układu) Nie jest zależny od specfic UI toolkit, ale obsługuje integrację z niemal każdym istniejącym zestawem narzędzi Javascript (zobacz dema "integracja" ) Układ Automatyczny (różne style, takie jak "hierarchiczny", "organiczny", "ortogonalny", "drzewo", "okrągły", "radialny" i inne)]}
- automatyczne wyznaczanie krawędzi (ortogonalne i organic edge routing with obstacle avoid)
- Układ Przyrostowy i częściowy (dodawanie i usuwanie elementów i tylko nieznaczna lub wcale zmiana reszty diagramu)
- wsparcie dla grupowania i zagnieżdżania (zarówno interaktywne, jak i poprzez algorytmy układu)
- implementacje algorytmów analizy grafów (ścieżki, Centrale, przepływy sieciowe itp.)
- wykorzystuje technologie HTML 5, takie jak SVG+CSS i Canvas oraz nowoczesne wykorzystanie Javascript właściwości i inne więcej funkcji ES5 i ES6 (ale z tego samego powodu nie będzie działać w IE w wersjach 8 i niższych). [7]} używa modularnego API, które można ładować na żądanie za pomocą ładowarek UMD
Oto przykładowy rendering, który pokazuje większość żądanych funkcji:
Pełne ujawnienie: pracuję dla yWorks, ale w Stackoverflow nie reprezentuję swojego pracodawcy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-26 14:13:57
Jak wspomniał guruz, JIT ma kilka uroczych układów graficznych/drzew, w tym całkiem atrakcyjne wizualizacje RGraph i Hipertree.
Ponadto, właśnie umieściłem super prostą implementację opartą na SVG na github (bez zależności, ~125 LOC), która powinna działać wystarczająco dobrze dla małych Wykresów wyświetlanych w nowoczesnych przeglądarkach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-05 12:07:54