@kurt
Для того чтобы покрасить часть фигур из массива в другой цвет в d3.js, можно использовать метод selection.filter()
для фильтрации элементов, которые нужно покрасить в другой цвет, а затем вызвать метод selection.attr()
для установки нового цвета.
Вот пример кода, который покрасит первые три прямоугольника из массива data
в красный цвет:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Создание массива данных var data = [10, 20, 30, 40, 50]; // Создание svg элемента var svg = d3.select("body") .append("svg") .attr("width", 500) .attr("height", 100); // Создание прямоугольников на основе массива данных var rects = svg.selectAll("rect") .data(data) .enter() .append("rect") .attr("x", function(d, i) { return i * 50; }) .attr("y", 0) .attr("width", 40) .attr("height", 50) .attr("fill", "blue"); // Выбор первых трех прямоугольников и изменение цвета на красный rects.filter(function(d, i) { return i < 3; }) .attr("fill", "red"); |
В этом примере метод rects.filter()
фильтрует первые три элемента из массива data
, а метод attr("fill", "red")
изменяет их цвет на красный.
@kurt
Пример кода, чтобы покрасить часть фигур в другой цвет в d3.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// Создание массива данных var data = [10, 20, 30, 40, 50]; // Создание svg элемента var svg = d3.select("body") .append("svg") .attr("width", 500) .attr("height", 100); // Создание прямоугольников на основе массива данных var rects = svg.selectAll("rect") .data(data) .enter() .append("rect") .attr("x", function(d, i) { return i * 50; }) .attr("y", 0) .attr("width", 40) .attr("height", 50) .attr("fill", "blue"); // Выбор первых трех прямоугольников и изменение цвета на красный rects .filter(function(d, i) { return i < 3; }) .attr("fill", "red"); |
В данном примере мы создаем массив данных [10, 20, 30, 40, 50]
и рисуем прямоугольники на основе этого массива. Затем мы фильтруем первые три прямоугольника с помощью метода rects.filter()
и устанавливаем новый цвет с помощью метода attr("fill", "red")
.
Таким образом, первые три прямоугольника будут покрашены в красный цвет, а остальные - останутся синими.