JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<div id="scatterplot">
</div>
CSS
.extent {
opacity: 0.2;
}
.axis path,
.axis line {
fill: none;
stroke: black;
shape-rendering: crispEdges;
}
.axis text {
font-family: sans-serif;
font-size: 11px;
}
JavaScript
// General variables
var svg, width, height;
var padding = 30;
var dataset = [
[ 5, 20 ],
[ 480, 90 ],
[ 250, 50 ],
[ 100, 33 ],
[ 330, 95 ],
[ 410, 12 ],
[ 475, 44 ],
[ 25, 67 ],
[ 85, 21 ],
[ 220, 88 ]
];
function drawGraph(){
scatterplot_area_size = $("#scatterplot").width();
width = scatterplot_area_size;
height = scatterplot_area_size * 0.75;
console.log(width);
// Retrieve the interval of the x and y data
var maxX = d3.max(dataset, function(d) {
return d[0]; //References first value in each sub-array
});
var minX = d3.min(dataset, function(d) {
return d[0]; //References first value in each sub-array
});
var maxY = d3.max(dataset, function(d) {
return d[1]; //References second value in each sub-array
});
var minY = d3.min(dataset, function(d) {
return d[1]; //References second value in each sub-array
});
// Create a (square) scatterplot area in the div with id scatterplot
// which spans the entire div in width
svg = d3.select("#scatterplot")
.append("svg")
.attr("width", width)
.attr("height", height);
// plot all points
var points = svg.append("g")
.attr("class", "point")
.selectAll("circle")
.data(dataset)
.enter()
.append("circle");
console.log(minX + " " + minY);
// Create x and y scales
var x = d3.scale.linear()
.domain([minX, maxX])
.range([padding, (width-padding)]);
var y = d3.scale.linear()
.domain([minY, maxY])
.range([(height-padding), padding]); // Reverse the scale to let high values show at the top and low values at the bottom
// Set the x and y positions as well as the radius...