Hacker News new | ask | show | jobs
by cwbrandsma 4517 days ago
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.

1 comments

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.