Whereas you could show me some partial differential equations to solve that I haven’t touched in 10 years and that somehow comes back quicker.
But I also think the d3 reference docs are absolutely horrible too.
Whereas you could show me some partial differential equations to solve that I haven’t touched in 10 years and that somehow comes back quicker.
But I also think the d3 reference docs are absolutely horrible too.
I feel like its more stable now though. Something clicks for me since ive started writing it in more imperative style with svelte+d3 rather than d3 alone. The generated elements are easier for me to reason about, rather than otherwise relying on inspecting the generated elements with dev-tools after the generation.
This site was helpful to me, to combine d3 and svelte: https://svelte.recipes/
Maybe 80% of what I do is applications, 10% systems and 10% data analysis. Often I will spend two weeks making Jupyter notebooks and then not look at it for two months.
I find most plotting libs have a lot of arbitrary things to remember, they usually have several nano DSLs (strings that get interpreted in ways more complex than atoi.). On top of that most plotting libs have something wrong from my point of view in various areas like deciding the range of the axes or handling huge numbers of points or something.
D3 makes you do a lot yourself but the interfaces it provides to do that are conceptually straightforward. Instead of using someone else’s bloated and buggy general purpose code though an APi that feels like assembling a ship in a bottle you can just do it right with D3.js.
But having to do it yourself is a lot of work so you have to make an executive decision between shoehorning some plotting library that can’t do a chart feature that honestly should be supported versus building an entire chart from scratch.
Not saying this is an easy problem to solve either. If I needed to generate some very specific data driven graphics it would probably still be my go to.
For me it also always had this moment when it „clicked“ just to disappear after not using it for a couple of months.
Which is an interesting problem!
Is it better to optimally model ones problem space?
Or suboptimally model it, but create a model that's closer to developer/user expectations?
I could not understand some of the design choices until I understood tidy data and not being much into R, I never ran across the idea previously.
Mike Bostock is so brilliant and has put in such an immense amount of work into d3 that if you even start trying to build your own data visualization javascript library you will end up leveraging d3 at some point as to not reinvent the wheel.
Again, I’m not an expert on d3, just someone who spent ~12-18months maintaining couple visualizations (among other things)
The HCI (human calculation interface) for calculus has been lovingly polished for many, many generations. A quick read over Newtons original texts will quickly reveal that wasn't always so.
It seems unfair to hold an API to the standard, really.
Then, I just had to write the necessary aggregation/group_by sql to give it the data it expects in the correct shape. Tedious, but it was the path of least resistance.
You still end up finding a million ways to use the d3 library even if you never use attr at all.