Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As someone who has recently been deep diving D3 for fun, I will give you my opinion.

D3 is the king of data visualization written by Mike Bostock, a creative comp sci dude with incredible data viz and programming skills (love ya Mike)

The initial learning curve is kinda steep, but in reality it’s actually a really logical setup, you just need to build a few mental models. Without a doubt, I would pick D3. Top charting libs use D3 under the hood. It’s so god damn flexible you can build whatever you want.

Study d3indepth.com for a couple weeks, write a lot of code and watch some YouTube videos. The books are usually meh on this subject and outdated. Mike started Observable to make this passion of his profitable. It’s like Jupiter notebooks for visualizations using D3.

I’ve been wanting to write more and use visualizations to strengthen my writing and I’m picking a mix of D3 and standard JS/HTML to do it. Very satisfying



Came to say something similar. D3 starts out feeling like “magic” (in a bad way) until you wrap your head around the join/enter/update/exit model and how the various parts fit together.

Once you grasp it, it starts feeling like magic in the very good sense of that. I think it’s worth doing 3-5 representative “here’s what I want; how do I do it in D3?” exercises before concluding that D3 is too complex.


Exactly. I spent like a week or two building bar charts and line charts in various ways to learn the basics, which helps. Some stuff I see, like on Mikes blog is seemingly magic


I 2nd D3, especially if you have a lot of datapoints.

I've kicked off a rewrite of an old Angular application that uses D3 in Blazor. I did a rather detailed tour of native Blazor charting libraries, and they all choked when given hundreds of datapoints.

I ended to deciding to wrap D3 for Blazor when we're ready to update that part.


Many thanks for that link! Agree with all your points. D3.js is indeed an excellent library and worth learning.




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

Search: