News for hackers. Stuff that matters.
Re:Sigma.js, a JavaScript library dedicated to graph drawing by beat on Tuesday February 04, 2014 @11:38AM (#7178489)
What are the strengths of this library, relative to D3? How does Sigma work differently?
Re:Sigma.js, a JavaScript library dedicated to graph drawing by cwbrandsma on Tuesday February 04, 2014 @04:32PM (#7180368)
On the technical side: D3 is built on svg, looks like this is built on canvas. There are a few implications to both of those as far as compatibility and performance, but shouldn't make a difference in most cases.

In general, D3 looks to be a more general purpose graphing tool (also maps, multiple charting types, and graphs), while this is more single purpose.

Re:Sigma.js, a JavaScript library dedicated to graph drawing by auvrw on Wednesday February 05, 2014 @12:26AM (#7182061)
upvote, because this is the correct answer to the question "how does this work differently from d3," as opposed to the question, "what are the advantages/disadvantages of using this over d3."

a quick f12-for-firebug reveals that sigma indeed uses the canvas element. i haven't actually used the library, but it appears ( https://github.com/jacomyal/sigma.js/blob/master/package.jso... ) to in fact be built directly on canvas, which is impressive in some sense but probably does duplicate a lot of work that could be avoided by using a generic-canvas-drawing-but-not-specifically-graph-drawing library.

d3 stands for "data-driven-documents" and is actually not specific to graphs. at the core, it's about (as the expanded name suggests) connecting html documents to javascript data structures. of course, lots of libraries -- angular, etc. -- may be described in such general terms, so more specifically, d3 is useful when you have both a lot of data (or a lot of structure to your data) and a lot of html elements to layout according to that data.

it just so happens that <svg> is now actually a tag in html ( : / ? i mean that, the advances in the browsers themselves, was news to me, when i looked at d3 for the first time), so yeah, d3 is most commonly used when the elements you want to lay out are a bunch of svg tags.

anyway, i really like d3 (and probably would like three.js, for that matter, if i took the time to toy around with it) b/c i think it does one fairly general thing, does it well, and has practical applications.

Re:Sigma.js, a JavaScript library dedicated to graph drawing by me_bx on Tuesday February 04, 2014 @12:46PM (#7179005)
to add up on the other replies: sigma.js is plug-and-play, very easy to draw a force-directed graph with nice built-in features. d3.js requires more work to get to the same result.

Advantage of d3.js is that it is easier to customize the display you want.

other difference: sigma.js implements "force atlas 2 " algorithm - like the one found in Gephi, which may be more suitable for some graphs (when you want to highlight community structures)

Re:Sigma.js, a JavaScript library dedicated to graph drawing by nrub on Tuesday February 04, 2014 @12:31PM (#7178886)
Sigma is significantly faster than D3 for drawing large graphs; however, it's only able to draw graphs. D3 is a multipurpose library for many different kinds of visualizations.
Re:Sigma.js, a JavaScript library dedicated to graph drawing by nawitus on Tuesday February 04, 2014 @02:43PM (#7179807)
Are you comparing Sigma with using D3 with SVG? One could also use a canvas to make it render faster.
Re:Sigma.js, a JavaScript library dedicated to graph drawing by tptacek on Tuesday February 04, 2014 @12:01PM (#7178640)
For one thing, Sigma appears to have an ortho layout; D3 only does force-directed, right?
Re:Sigma.js, a JavaScript library dedicated to graph drawing by jacomyal on Tuesday February 04, 2014 @12:08PM (#7178696)
Actually, as with d3, you can develop your own network visualization layouts.

The main difference is that sigma only deals with graphs drawing, so it deals without effort with drag and drop (mouse or touch), scaling the graph to the screen, smooth zooming (with mousewheel or pinch)...

Re:Sigma.js, a JavaScript library dedicated to graph drawing by tptacek on Tuesday February 04, 2014 @12:22PM (#7178808)
Aren't the layouts the Hard part?
Re:Sigma.js, a JavaScript library dedicated to graph drawing by _delirium on Tuesday February 04, 2014 @12:43PM (#7178979)
It depends on where your data's coming from, but I tend to avoid doing layout in JS, and instead pre-lay-out the data using Gephi or graphviz (possibly in a cron job if the data changes), loading the hardcoded initial layout in JS and using sigma.js only for display/interaction. In the non-cron case, also lets me tweak the layout a bit through trial and error or trying out different algorithms, to get something I like. Obviously doesn't work for every possible usage, though.
Re:Sigma.js, a JavaScript library dedicated to graph drawing by jacomyal on Tuesday February 04, 2014 @12:41PM (#7178967)
It is one hard part. But displaying thousands of elements in a web page is another one.

Also, sigma does provide in a plugin a force-directed layout, ForceAtlas2, initially developed for Gephi.