Какие опции доступны для расположения направленных или неориентированных графов в.NET?

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

31
задан Dominique Fortin 28 March 2017 в 22:51
поделиться

12 ответов

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

12
ответ дан 27 November 2019 в 22:37
поделиться

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

Например, я бы хотел, чтобы «детали» были скрыты до тех пор, пока я не нажму на расширитель в узле, или дважды не щелкну мышью на узле или наведите курсор мыши.

Предполагая, что GLEE не может этого сделать, существуют ли сейчас какие-либо чистые решения .NET, которые могли бы это сделать?

0
ответ дан 27 November 2019 в 22:37
поделиться

То, когда я сделал некоторую работу, включающую графики прошлым летом, я нашел наилучший вариант, который не был чрезмерно дорогим, должно было вручную сделать это в SVG, т.е. выписать файл SVG от набора строк и рендеринг что к использованию изображения Inkscape.

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

0
ответ дан 27 November 2019 в 22:37
поделиться

Не.NET, но инструментарий, на который часто ссылаются, для рендеринга графиков является AT& T Graphviz. Я только использовал автономные приложения сам, но исходный код доступен под чем-то напоминающим лицензию Open Source.

Graphviz используется популярным инструментом документации кода doxygen для автоматического рисования различных схем для его сгенерированной документации.

0
ответ дан 27 November 2019 в 22:37
поделиться

Используйте QuickGraph для вывода файлов Dot для GraphViz . Я сделал это в недавнем проекте, и это, кажется, работает довольно хорошо. Посмотрите здесь пример кода для анализа файлов .plain или используйте мой проект здесь в качестве справочного материала для простого вывода изображений .png.

1
ответ дан 27 November 2019 в 22:37
поделиться

Graphviz является все еще сегодня, по-моему, одной из лучшей библиотеки графика существует. Однако интеграция его к .NET является болью.

возможно назвать инструмент командной строки для генерации вывода формы на основе входа графика, тогда Вы читаете вывод и кладете элементы на пользовательском элементе управления, который отображается, любые формы graphviz вычислил. Это очень hacky, но это - лучший способ, которым наши команды нашли интеграции graphviz с .NET несколько лет назад.

А лучшее решение могло бы существовать сегодня; в то время ЛИКОВАНИЕ было все еще очень эмбриональным, и я не видел прогресса, который Microsoft сделала с этого времени.

3
ответ дан 27 November 2019 в 22:37
поделиться

Microsoft Research обеспечивает инструмент под названием MSAGL (Автоматическое Расположение Графика, ранее названное ЛИКОВАНИЕ) для.NET.

MSAGL доступен здесь: http://research.microsoft.com/en-us/downloads/f1303e46-965f-401a-87c3-34e1331d32c5/default.aspx

Правовая оговорка: Я не использовал инструмент, таким образом, я не знаю, подходит ли это для Вас (и, и при этом я не знаю об условиях лицензирования, кажется, что это только для некоммерческих приложений). Но по крайней мере это выглядит интересным.

8
ответ дан 27 November 2019 в 22:37
поделиться

Мальчики в Mindscape имеет такой инструмент

С образным именем Блок-схемы WPF

кроме того, проверяет Головокружение семья. Покажите демонстрационный проект, он имеет простую форму этого

1
ответ дан 27 November 2019 в 22:37
поделиться

Northwoods offers a pure .NET solution in their GoLayout product. They offer tree, force directed, and layered digraph (which is not quite a Sujiyama effect, but not too far off for many if not most data sets). At $1790/seat it's expensive. There are also some limitations: most importantly, their implementations are designed for "human readable" graphs. I've given it data sets of over 5,000 nodes and had no issue, but I can also generate data sets of less than 500 nodes that cause it to have a stack overflow (recursing too deep). Depending upon your domain, it may (or may not) be a good fit. If you need a general layout package that handles any data set, I'd suggest GraphViz over Northwoods.

I have yet to use any of their WPF capabilities, but I know they have them. I've been using their stuff in WinForms land for a while.

0
ответ дан 27 November 2019 в 22:37
поделиться

Я использовал MsAgl, и он довольно хорош. Он также имеет средства просмотра как для WinForms, так и для WPF, которые могут быть важны или не важны для вас. Необязательно использовать средства просмотра, поскольку они довольно слабо связаны с механизмом компоновки графов.

Он не поддерживает все, что делает Graphviz (особенно с точки зрения некоторых типов фигур). Также документация могла бы быть лучше, но она довольно солидная, если не самый совершенный продукт MS за всю историю.

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

1
ответ дан 27 November 2019 в 22:37
поделиться

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

enter image description here enter image description here enter image description here

8
ответ дан 27 November 2019 в 22:37
поделиться

I have used NodeXL, http://www.codeplex.com/NodeXL, which is a .Net 3.5 library (but also an Excel add-on). NodeXl is developed by Microsoft Research and pretty neat: it has visualization algorithms and some metrics but it is still in its early stages of development. If you have are a seasoned .Net developer then I would definitely take a look at it.

However, if you know Python then I would definitely recommend Networkx and its cousin pygraphviz which is an interface to Graphviz. I have used both and my productivity with Python / Networkx is way higher then when I was using NodeXL.

GLEE is Microsoft's closed source library that you only can use for free in non-commercial software while NodeXL is Microsoft's way of open source but you can use it freely in a product you develop.

2
ответ дан 27 November 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: