Previous Entry Share Next Entry
2016-01

layout of directed [ranked] graphs

неужели кроме Graphviz и yEd никто адекватно не может раскладывать графы?

(все другие попробованные варианты не умеют rank и в итоге превращают граф в кашу :/ )

graphviz-emscripten приводит меня в ужас, yEd стоит безумных денег.

Graph# не умеет.

UPD: хм.... graphviz-emscripten via SVG работает очень даже быстро (на телефоне в Mobile IE уделывает dot->png на Core i7). Оказывается, у графвиза тормозит именно Cairo растеризация. Я в шоке.

UPD: сам граф - https://gist.github.com/wizzard0/6823830

This entry was originally posted at http://wizzard.dreamwidth.org/313173.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
localstorm October 4th, 2013
безумных денег -- это сколько?

wizzard0 October 4th, 2013
Single Product, без апдейтов, привязанный к домену - $23800.

localstorm October 4th, 2013
мдя, дорогова-то )

wizzard0 October 4th, 2013
Отож)

wizzard0 October 4th, 2013
yFiles for .NET Source Code License, Site, 1 year of updates - $74880

potan October 4th, 2013
D3.js вполне справляется.

wizzard0 October 4th, 2013
странно, у меня ничего вменяемого он нарисовать не смог. можно сэмпл в который данные воткнуть и посмотреть?

https://gist.github.com/wizzard0/6823830 вот сами данные (в формате DOT, GraphML и "список ребер в JSON")

potan October 4th, 2013
Добавил в json список узлов и переименовал ftom/to в source/target и запихнул в сделанную не D3 страничку. Выглядит вполне прилично. Правда, от туда я не знаю как svg вытащить.

wizzard0 October 4th, 2013
Нууу я думаю мне скриншота хватит чтобы понять стоит дальше ковырять или это все-таки не то.

potan October 4th, 2013
Страничку miserakl делал. Он разрешил исходники прислать, что я и сделаю.

wizzard0 October 4th, 2013
Спасибо, погляжу!

wizzard0 October 4th, 2013
Э... Ммм... Спасибо за код в любом, случае, но...

Я, конечно, понимаю, что "адекватная раскладка графа - понятие весьма растяжимое и субьективное"...

Короче, вот сравнение раскладки d3 приведенным примером с Graphviz и yEd.

Конечно, там узлы подписаны и раскрашены, а в инет я выложил версию без надписей, но здесь как минимум видно, что d3 даже не пытается сохранять ранг элементов графа, тогда как graphviz/yed отлично его демонстрируют без каких-либо костылей, и получается гораздо нагляднее и удобнее..

Короче, такая визуализация, увы, к использованию непригодна (в исходном графе точек гораздо больше, но по графвизу видно, что его можно без потери адекватности порезать на такую вот "колбасу" и визуализировать по частям, а d3 эту структуру вообще никак не позволяет углядеть, например)

Мысли?

...понятие весьма растяжимое и субьективное

Serge Shikov October 5th, 2013
Ну отчего же субъективное?

Просто алгоритмы бывают разные, цели и результаты у них разные тоже тоже.

Я правда давно в эту сторону копал, но результаты увы, были не утешительные. Именно такой layout, какой вам нужен, практически никто не умеет. Поэтому все время прикручивался graphviz в java-проекты (спасибо хоть bindings добрые люди давно настрогали).

А нужно именно javascript?

Re: ...понятие весьма растяжимое и субьективное

wizzard0 October 5th, 2013
Дотнет еще пойдет. Джава, на худой конец (я ее засуну в IKVM и получится плюс-минус дотнет)


Re: ...понятие весьма растяжимое и субьективное

Serge Shikov October 5th, 2013
www.jgraph.com теоретически может подойди. Там и javascript есть, под названием mxGraph. Но реально сравнение я не проводил.

soloviewoff October 4th, 2013
Про yEd - на сайте написано "yEd is freely available and runs on all major platforms: Windows, Unix/Linux, and Mac OS X". Где подвох?

wizzard0 October 4th, 2013
Подвох в том, что мне либа нужна.

soloviewoff October 4th, 2013
Понял. Да, нехилая цена.

juan_gandhi October 4th, 2013
О! Спасибо. Не знаю, когда я смогу заняться привинчиванием этого дела к пришиву, но...

  • 1
?

Log in

No account? Create an account