Estoy tratando de aprender d3 con el libro Visualización web interactiva, pero muchas cosas han cambiado con la versión 4.0. Una cosa que realmente no puedo entender es si hay un equivalente para d3.scale.category10 () para obtener un mapeo fácil de colores. ¿Hay algo así en la nueva versión o necesitamos usar math.random y codificar algo nosotros mismos?
82
color()
, en su código de trabajo, la salida es siempre azul y naranja, ¿es ese el comportamiento esperado? ¿Y si quiero morado?color = d3.scaleOrdinal(d3.schemeCategory10).domain(d3.range(0, 9));
Una solución sencilla es utilizar las siguientes escalas de color en la versión 4 de d3.js:
var colorScale_1 = d3.schemeCategory10; var colorScale_2 = schemeCategory20; var colorScale_3 = d3.schemeCategory20b; var colorScale_4 = d3.schemeCategory20c;
colorScale_1, colorScale_2, colorScale_3, colorScale_4 son las matrices de diferentes colores. Entonces, puede usar sus diferentes índices para rellenar la forma. Por ejemplo
svg.append("rect") .attr("x", 10) .attr("y", 10) .attr("width", 100) .attr("height", 100) .style("fill", colorScale_1[2])
Para referencia, eche un vistazo aquí: http://bl.ocks.org/emmasaunders/f4902478bcfa411c77a412c02087bed4
Espero que ayude.
fuente