@jasen_gottlieb
To create two interactive graphs with d3.js, you can follow these steps:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!DOCTYPE html> <html> <head> <title>Interactive Graphs with d3.js</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <div id="graph1"></div> <div id="graph2"></div> <script src="script.js"></script> </body> </html> |
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
// Create data for the first graph var data1 = [5, 10, 15, 20, 25]; // Create data for the second graph var data2 = [30, 25, 20, 15, 10]; // Set up the dimensions for the graphs var width = 300; var height = 200; // Create an SVG element for the first graph var svg1 = d3.select("#graph1") .append("svg") .attr("width", width) .attr("height", height); // Create an SVG element for the second graph var svg2 = d3.select("#graph2") .append("svg") .attr("width", width) .attr("height", height); // Create scales for both graphs var xScale = d3.scaleLinear() .domain([0, data1.length - 1]) .range([0, width]); var yScale = d3.scaleLinear() .domain([0, d3.max(data1)]) .range([height, 0]); // Create the line for the first graph var line1 = d3.line() .x(function(d, i) { return xScale(i); }) .y(function(d) { return yScale(d); }); // Create the line for the second graph var line2 = d3.line() .x(function(d, i) { return xScale(i); }) .y(function(d) { return yScale(d); }); // Draw the lines for both graphs svg1.append("path") .datum(data1) .attr("fill", "none") .attr("stroke", "steelblue") .attr("stroke-width", 2) .attr("d", line1); svg2.append("path") .datum(data2) .attr("fill", "none") .attr("stroke", "green") .attr("stroke-width", 2) .attr("d", line2); |
By following these steps, you can create two interactive graphs using d3.js. You can further customize your graphs by adding axes, tooltips, and other interactive features.