The one critique I have of D3 is that it is becoming increasingly closely paired with Observable, such that when I'm searching for examples of how to make something in d3, I can only find Observable examples that require the Observable runtime in order to function properly.
I think the examples should have a JS native version in addition to the Observable implementation.
That's part of the reason I started my book "Visualisation with D3.js"[1]... it's early access and I'm trying to find more time to work on it, but it's all JS native
It's a real pain. I work with lots of "data science" types who are often trying to concurrently learn JavaScript and d3 - often with JS as their first or second programming language. It's difficult enough for an experienced programmer coming back to d3 after a few versions to pick out what's d3 vs. what's Observable - and very difficult to help a relative newbie through the process of turning what's shown in an Observable notebook into something that can run in an ordinary web page.
Indeed - I don't like the pairing with Observable. I don't like Observable in general because the full experience can't be self-hosted. However, both projects belong to Mike, and D3.js is free - so I can't complain.
What’s the difference between the two? As someone who only dips into D3 every few years and just discovered Observable, I wasn’t aware that they were different. I thought Observable was just a way of sharing D3 visualizations.
Someone should make an open source version of the Observable ecosystem or integrate it into Jupyter tooling better. The notebook format is not encrypted or anything.
So, is d3 tree-shakeable yet? If I import { scaleLinear } from 'd3' in a webpack-built project, will I get only the scaleLinear code? As far as I remember, in v6 this will import a lot of (or perhaps the rest of) d3 as well.
Exciting to see ESM everywhere. It works so well with Observable. I'm trying to put live playgrounds at observable for my packages as part of docs [0] - just starting, nothing exciting to see there yet, but I think the concept of playground as part of docs is quite awesome.
Used this in a data viz class and I’d say it’s overkill for most visualizations. Also very difficult to learn and frustrating to implement with all the “enter, exit” stuff. Excel, Tableau, etc so much easier and most of what you need to do visualizations in the corporate setting. Obviously it’s excellent for very specialized unusual visualizations but it’s rare those are really needed.
All the "enter, exit" stuff is what makes d3 beautiful. From a core handful of ideas, Mike is able to express a vast world of visualizations. I think it is the most amazing framework I have had the pleasure of using in my 30+yrs of software development. Ya, you could grab bar chart library and just give it data and get a graph out, or, you could spend a little time with d3 and actually learn something so powerful you can make bar charts - or virtually any other kind of visualization you will ever need. Well worth working past the frustration, imo.
> Excel, Tableau, etc so much easier and most of what you need to do visualizations in the corporate setting.
D3 is the best way to make visualizations online. Yes, it requires learning the library and building things from scratch, but it's light years better than the dog shit modules Tableau offers.
D3 v6 was released on 27th Aug 2020, so your feeling is right. We seem to get a major release about every year now, compared to every two years before v5.
whimsicalism|4 years ago
I think the examples should have a JS native version in addition to the Observable implementation.
DataCrayon|4 years ago
[1] https://datacrayon.com/shop/product/visualisation-with-d3/
_dwt|4 years ago
kowlo|4 years ago
dimal|4 years ago
th0ma5|4 years ago
j-pb|4 years ago
I'm super grateful that they provide such good documentation, which is second to none, in a nicely explorable environment.
spankalee|4 years ago
Standard JS modules, very nice! D3 now works in all playgrounds and libraries even as dependencies without non-standard tooling!
https://jsbin.com/ducosajehi/edit?html,output
I do wish they didn't even publish UMD, that's a recipe for duplication if some libraries import the module and some import the UMD.
azangru|4 years ago
jwilber|4 years ago
mirekrusin|4 years ago
[0] https://observablehq.com/@mirek/tsql-examples
DataCrayon|4 years ago
terpimost|4 years ago
nickreese|4 years ago
Vaslo|4 years ago
mskullcap|4 years ago
drewda|4 years ago
HatchedLake721|4 years ago
D3 is a low level visualisation library where you write code.
Excel/Tableau are business tools.
th0ma5|4 years ago
gaws|4 years ago
D3 is the best way to make visualizations online. Yes, it requires learning the library and building things from scratch, but it's light years better than the dog shit modules Tableau offers.
NelsonMinar|4 years ago
unknown|4 years ago
[deleted]
kowlo|4 years ago
dang|4 years ago
wongarsu|4 years ago