Hacker News new | comments | ask | show | jobs | submit login
What D3.js is Not (ruoyusun.com)
86 points by insraq on June 25, 2014 | hide | past | web | favorite | 25 comments

For web dev beginners, I haven't yet seen a better ramp-up tutorial than Scott Murray's "Interactive Data Visualization", which is free online: http://chimera.labs.oreilly.com/books/1230000000345/

He really emphasizes the low-level at which D3 operates, as you move from creating shapes with divs and CSS, to eventually learning the D3 framework. Here's his section on "What [D3] Doesn't Do": http://chimera.labs.oreilly.com/books/1230000000345/ch02.htm...

This book is very good and I highly recommend it if you're just starting out. But I didn't feel like I really understood how d3 works until I read these two articles by Mike Bostocks himself.



IME, understanding joins and selections is essential when using d3.

Ya, I read this book in a spare afternoon several weeks ago. Most developers can skip the background/introduction chapters but jump directly to the core (but the basics) of d3.js library.

The author has clearly explained how people misunderstand this library because of the fancy sample list. Moreover, d3 is more likely a data abstraction layer rather than a graphics or plotting tool. It gives an interface to represent the data by SVG graphical components.

Great rundown. Thank you. Anyone know of a good library for flowcharts in Angular.js?

I found this: http://www.codeproject.com/Articles/709340/Implementing-a-Fl...

It looks pretty handy but doesn't have all the functionality I was looking for.Just thought I'd ask before potentially reinventing the wheel...

What do you mean "in" Angular?

I write a diagramming library (GoJS - http://gojs.net/beta) that can work alongisde Angular:


Were you looking for something specific in terms of Angular integration?

My mistake with the "in" part - I meant to say libraries that work well with Angular.

I actually saw your demo while researching and it more or less what we need, however the software I'm working on is licensed under new BSD and we were hoping to distribute for free.

Looks like an excellent library you've built though. Thanks for replying.

At the same time, D3 makes all sorts of smart decisions for you when you're making charts with it. I'm always pleasantly surprised, for example, by how D3 picks just the right number of tick marks on axes. Mike Bostock has taste and deep knowledge of how to make good visualizations, and it shows. A similar library made by a less able person would barf out way uglier charts.

The author's assertion that D3 doesn't work with Angular is rather fishy seeing as there is a book specifically written about using D3 with Angular: https://leanpub.com/d3angularjs

He doesn't assert that it doesn't work with it. Rather, the author states you shouldn't interact heavily with the DOM with both Angular and D3 - choose one to keep things simpler.

The existence of this book, as well as the numerous d3/angular wrapper projects, don't make his assertion 'fishy' - they prove it.

I'm kinda surprised that people didn't turn d3 into single page application framework. It has much cooler interface than most of the stuff that flies around these days in that department.

The iD editor for OpenStreetMap is a nice example of how to build a large single-page web application with d3 (and without jQuery, Backbone, or any other large JS libraries): https://github.com/openstreetmap/iD

And sadly really resource intense and thus laggy on all systems I tried it on :/

Thanks for this. I've been telling people that D3 is not a charting library for over a year, but I get the feeling they don't really believe me!

its an easy misconception to have. Luckily there are charting libraries written with D3 like nvd3 and rickshaw.

c3js is also pretty good

It's really a framework masquerading as a library.

To me it feels like data-oriented jQuery.

D3 is a data binding library. The data, enter, exit cycle is the heart of the library. You can use it to bind data to any DOM elements.

I quickly discovered the same things about SVG/Canvas when I tried to use it for a game board. It was a casual project so I didn't search too hard for other options but I'll take a look at your list you provided. Thanks!

D3.js may not itself be a charting library but there are numerous adaptions that make it easy to work with - especially with angular: http://code.shutterstock.com/rickshaw/ http://nvd3.org/

d3 is very powerful, has an amazing api, and it's incredible library. but my processor goes insane running trivial d3 animations (macbook pro core-2-duo 2009). with css 3d, webgl, I don't have processor issues, but god-damn the d3 api is one of the best I've ever used for animations

D3 is not tied to SVG at all. I only use it with HTML DOM and CSS 3D properties.

Is ChartJS still actively developed? No substantive Github changes in a year and the site appears down for me.

No. Not on the original repo. There's plenty of activity on forks, but no solid consensus on a new official repo. See https://github.com/nnnick/Chart.js/issues/356

The site is up for me. IMO http://www.chartjs.org/docs/ is one reason why the library is so popular, despite its lack of interactivity.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact