@wilmer.lemke
To place rectangles behind text in d3.js, you can use SVG elements to create both the rectangles and the text. Here's a simple example to demonstrate how you can achieve this:
1
|
<svg id="visualisation" width="800" height="600"></svg> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// Sample data var data = ['Rect1', 'Rect2', 'Rect3']; var svg = d3.select('#visualisation'); // Append rectangles svg.selectAll('rect') .data(data) .enter() .append('rect') .attr('x', 50) .attr('y', function(d, i) { return 50 + i * 50; }) .attr('width', 100) .attr('height', 30) .style('fill', 'lightblue'); // Append text svg.selectAll('text') .data(data) .enter() .append('text') .attr('x', 70) .attr('y', function(d, i) { return 70 + i * 50; }) .text(function(d) { return d; }) .attr('font-family', 'Arial') .attr('font-size', '20px') .attr('text-anchor', 'start') .attr('fill', 'black'); |
In this example, we are creating rectangles filled with lightblue color and placing text on top of the rectangles. By adjusting the coordinates and styles of the rectangles and text elements, you can customize the layout to achieve the desired effect of having rectangles behind the text.
Remember that the order in which elements are appended in d3.js determines their stacking order on the SVG canvas, so make sure to append the rectangles before the text to ensure that they appear behind the text.