Я пытаюсь изучить d3 с помощью книги «Интерактивная веб-визуализация», но в версии 4.0 многое изменилось. Одна вещь, которую я действительно не могу понять, - есть ли эквивалент для d3.scale.category10 (), чтобы получить простое сопоставление с цветами. Есть ли что-то подобное в новой версии или нам нужно использовать math.random и самостоятельно что-то кодировать?
82
color()
, в вашем рабочем коде вывод всегда будет синим и оранжевым - это ожидаемое поведение? Что, если я хочу фиолетовый?color = d3.scaleOrdinal(d3.schemeCategory10).domain(d3.range(0, 9));
Простое решение - использовать следующие цветовые шкалы в версии 4 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 - это массивы разных цветов. Итак, вы можете использовать их разные индексы для заполнения фигуры. Например
svg.append("rect") .attr("x", 10) .attr("y", 10) .attr("width", 100) .attr("height", 100) .style("fill", colorScale_1[2])
Для справки смотрите здесь: http://bl.ocks.org/emmasaunders/f4902478bcfa411c77a412c02087bed4
Надеюсь, это поможет.
источник