Библиотека графа .NET вокруг? [закрыто]

92

Я ищу библиотеки Graph для .net. Есть ли какие-нибудь выходы?

ps: Я имею в виду библиотеки GRAPH, а не библиотеки графиков и графиков!

edit: Я имею в виду графики, из теории графов: (источник: sourceforge.net )альтернативный текст

Мне также нужно, чтобы у меня были возможности рисования.

пожрал элизиум
источник
Может быть, это может быть полезно: github.com/komorra/NodeEditorWinforms
komorra
Ссылка на изображение, кажется, не работает (теперь она перенаправляет на что-то другое)
UuDdLrLrSs

Ответы:

44

Используйте комбинацию QuickGraph ( GitHub , CodePlex ) и Graph # для WPF ( вилка GitHub , CodePlex ) - обеих первоклассных библиотек. У меня они работают очень хорошо, но документации по Graph # почти не существует.

Мэтт Брекон
источник
16

Я работаю в команде NDepend, и в сентябре 2008 года мы перешли с GraphViz на MsAgl ( Microsoft Automatic Graph Layout ) . Лицензия MsAgl допускает коммерческое использование. Вот несколько примеров изображений графиков MsAgl, интегрированных в NDepend (все интерактивно, узлы можно перемещать / выбирать / удалять / нажимать, края можно редактировать / выбирать / снимать / щелкать, макет можно масштабировать, а также, хотя он мог бы быть более чистым API MsAgl достаточно чист для работы):

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

Патрик из команды NDepend
источник
Также можно поиграть с AGL на сайте rise4fun.com/Agl и посмотреть графики других пользователей на сайте rise4fun.com/rest/samples/rss/Agl
Джордж Бирбилис
2
Обратите внимание, что MSAGL теперь является OpenSource под лицензией MIT на GitHub: github.com/Microsoft/automatic-graph-layout и, похоже, поддерживается, поскольку недавно были внесены некоторые исправления для версии Silverlight
Джордж Бирбилис
Что касается попытки AGL на сайте Rise4Fun, о котором я упоминал, возможно, это простой вариант для мозгового штурма, но вы вводите график только в текстовой форме, а метки, которые вы используете для узлов, используются в качестве идентификаторов в этом текстовом синтаксисе, поэтому я думаю, вы не может быть узла с одинаковой меткой (скажем, House) в двух местах графа. Кажется, вы также можете использовать метки для ребер графа (для ссылок), используя синтаксис, показанный на сайте rise4fun.com/Agl/fsm (нажмите там кнопку PLAY и затем прокрутите вниз, чтобы увидеть, какой график сгенерирован)
Джордж Бирбилис
Где я могу скачать стабильную бинарную версию? Я не хочу создавать все источники неизвестного качества.
Thomas Weller
Думаю, здесь github.com/Microsoft/automatic-graph-layout не уверен, включена ли бинарная версия
Патрик из команды NDepend
12

Удалите мой предыдущий пост, я постараюсь дать более сложный ответ на вопрос. Самый верхний ответ уже не совсем актуален, поскольку библиотека Graph # сильно устарела.

Рекомендую проверить комбинацию GraphX и Quickgraph . GraphX ​​в качестве механизма визуализации и Quickgraph в качестве компонента управления графиками и математических операций.

Библиотека GrpahX написана для WPF 4.0 и METRO. Он предоставляет множество функций, которых не хватает Graph #:

  • Улучшена производительность рендеринга для больших графиков.
  • Поддержка маршрутизации и комплектации кромок, многие другие варианты кромок
  • Улучшенное управление масштабированием, поддерживающее окно обзора и выбор нескольких вершин
  • Богатая документация и образцы

Также GraphX ​​поддерживает все оригинальные алгоритмы компоновки из Graph #. Если у вас есть вопросы, посетите http://panthernet.ru/forum !

Александр Смирнов
источник
Ссылка GraphX ​​мертва.
xabush
Неа, просто были серьезные проблемы с вирусами на хостинге. Форумы в сети.
Александр Смирнов
9

Есть QuickGraph , он неплохо работает и имеет большинство базовых алгоритмов.

Дуг МакКлин
источник
Красиво, но, похоже, не умеет рисовать графики.
пожрал элизиум
2
Правда. У меня создалось впечатление, что вы спрашивали о вычислениях с графиками, а не о их рисовании. Тем не менее, он выводит в форматы, используемые парой различных инструментов рендеринга.
Дуг МакКлин,
5

Взгляните на yWorks: http://www.yworks.com/en/index.html

Судя по тому, что я видел, там не так много хороших библиотек.

В КАЧЕСТВЕ
источник
1
Выглядит круто, но 7k для библиотеки - это для меня слишком много.
пожрал элизиум
что удивительно, это один из самых дешевых вариантов!
AS
1
Это 7k, но мне когда-либо нравился API больше, чем библиотеки yWorks .NET и WPF.
Мэтью Растон,
5

Вы можете использовать API NodeXL из Microsoft Research по адресу: http://www.codeplex.com/NodeXL, но аналогичный вопрос был задан по адресу: /programming/44090/do-you-know-any -граф-визуализации-библиотеки-для-сети /

DrDee
источник
Звучит неплохо, но из того, что я видел сейчас на их примерах, кажется, что вам в основном нужно рисовать все самостоятельно, что было бы проблемой, поскольку у меня есть тысячи узлов для рисования.
пожрал элизиум
Я не совсем понимаю, что вы имеете в виду под «рисовать все самостоятельно». NodeXL - это не только расширение для Excel, но и API для .Net, и он поддерживает алгоритмы компоновки графов, такие как принудительно-направленная компоновка (Fruchterman-Reingold или Harel-Koren быстрое мультимасштабирование) или геометрическая схема (круг, сетка, спираль и т. д.). Я сам использовал его, и здесь не так много «ручной» работы
DrDee
Я говорил о другом, меня смутил другой ответ. Но похоже, что для NodeXL требуется Office 2007. У меня даже не установлен офис.
пожрал элизиум
Я это уже установил. Как мне теперь использовать его из C #?
пожрал элизиум
убедитесь, что вы устанавливаете библиотеку API, а не расширение Office Excel. API доступен по адресу: codeplex.com/NodeXL/Release/ ... Пространство имен NodeXL - Microsoft.NodeXL, поэтому вы можете импортировать его, используя: import Microsoft.NodeXL.Core import Microsoft.NodeXL.Visualization (я думаю, что эти два наиболее важные библиотеки). Просто убедитесь, что путь к вашей IDE содержит папку NodeXL.
DrDee
3

Я еще не пробовал, но наткнулся на интересное предложение от MS Research для визуализации ориентированных графиков Microsoft Automatic Graph Layout .

Попробуйте использовать "ориентированный граф" или "орграф" для поисковых запросов. Я получаю много хитов.

Эммануэль
источник
3

Взгляните на Сацума . Написано на C #, в основном это алгоритмы графов, но также есть базовая компоновка и отрисовка графа.

сали
источник
2

Посетите http://quickgraph.codeplex.com/ У них есть поддержка визуализации через DotViz и Glee.

Для визуализации я бы также посмотрел

http://flare.prefuse.org/

Хотя это вспышка, она кажется очень интересной, и у них есть хотя бы древовидная визуализация, хотя вы, возможно, сможете вывести из нее некоторые ненаправленные графы.

JBland
источник
0

Библиотека универсальной коллекции C5 для C # и CLI

jjchiw
источник
Разве это не просто несколько примеров алгоритмов графа, построенных на структурах данных коллекции? Я бы предположил, что вопрос требует чего-то вроде библиотеки C ++ BGL ( boost.org/doc/libs/1_40_0/libs/graph/doc/index.html ).
Pontus Gagge
Ты прав, Понт. В примерах руководства пользователя есть класс Graph, но он не является частью библиотеки. Это пример, построенный на нем. И притом грязный, неполный, если посмотреть на источник.
Пол Сасик
Но это можно использовать, ну, это как подход .......
jjchiw
0

Дружище, думаю, это то, что тебе нужно!

В этой статье представлена ​​универсальная библиотека графов на 100% C #. Эта библиотека представляет собой попытку перенести библиотеку Boost Graph Library (BGL) с C ++ на C #.

Самоучка
источник
1
Да, но у него есть несколько проблем при попытке нарисовать графики, из того, что я читал в комментариях codeproject.
пожрал элизиум
0

Мы использовали ZedGraph, проект с открытым исходным кодом, написанный на C #, поэтому вы можете настроить его, если считаете, что это необходимо. Он удовлетворил наши потребности, которые, похоже, очень близки к тому, что вы описали. Есть даже вики-сайт для проекта с довольно хорошими примерами.

Уолтер
источник