6 ms·
d3 has a lot of really useful libraries baked in. You can even use them independently and roll your own svg using its components as utilities. I find this sup
by udfalkso 8y ago
d3 has a lot of really useful libraries baked in. You can even use them independently and roll your own svg using its components as utilities. I find this super helpful when using d3 as a whole isn't really a good option (as part of a React/React-Native app for example).
Such as:
https://github.com/d3/d3-shape https://github.com/d3/d3-shape
https://github.com/d3/d3-scale https://github.com/d3/d3-scale
Doing it from scratch without the help of utilities like these would be much harder.
A couple examples:
var line = d3.line()
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.value); })
.curve(d3.curveCatmullRom.alpha(0.5));
line(data); // gives you svg path
and
var color = d3.scaleLinear().domain([10, 100]).range(["brown", "steelblue"]);
color(20); // "#9a3439"
color(50); // "#7b5167"
- substack 8y agoThat's not really a fair comparison. Just because something is "baked in" doesn't mean you can't get similar functionality from other libraries in a more ala-carte fashion.
- udfalkso 8y agoIt is a la cart here. Look at those two repos as examples.
- enjalot 8y agoit is alacart and baked in at the same time! This article breaks down the API in graleater detail. https://medium.com/@Elijah_Meeks/d3-is-not-a-data-visualization-library-67ba549e8520 https://medium.com/@Elijah_Meeks/d3-is-not-a-data-visualizat... All of the functionality in d3 is split up into smaller modules that can be required independently.