Built with blockbuilder.org
forked from sxywu's block: Selections: Data example
forked from sxywu's block: Selections: Enter example
forked from sxywu's block: Selections: Scale example
forked from sxywu's block: FEM: Exercise 1
forked from sxywu's block: FEM: Exercise 1 starter
xxxxxxxxxx
<head>
<meta charset="utf-8">
<script src="https://d3js.org/d3.v4.min.js"></script>
<style>
body { margin:0;position:fixed;top:0;right:0;bottom:0;left:0; }
svg {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<svg></svg>
<script>
var city = 'New York';
var margin = {top: 20, bottom: 20, left: 40, right: 20};
var width = 800 - margin.left - margin.right;
var height = 400 - margin.top - margin.bottom;
var svg = d3.select('svg')
.attr('width', width + margin.left + margin.right)
.attr('height', height + margin.top + margin.bottom);
var chart = svg.append('g')
.attr('transform', 'translate (' + margin.left + ',' + margin.top + ')')
// dataset of city temperatures across time
d3.tsv('data.tsv', (err, data) => {
// clean the data
data.forEach(d => {
d.date = d3.timeParse("%Y%m%d")(d.date);
d.date = new Date(d.date); // x
d[city] = ++d[city]; // y
});
console.log(data[0]);
var xScale = d3.scaleTime()
.domain(d3.extent(data, function(d) { return d.date;}))
.range([0, width]);
var xAxis = d3.axisBottom()
.scale(xScale);
chart.append('g')
.attr('transform', 'translate (' + 0 + ',' + height + ')')
.call(xAxis);
var yScale = d3.scaleLinear()
.domain(d3.extent(data, function(d) { return d[city]}))
.range([height, 0]);
var yAxis = d3.axisLeft()
.scale(yScale);
chart.append('g')
.call(yAxis);
var rectWidth = 3;
var rects = svg.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr('x', function(d, i) { return xScale(d.date) + (margin.left) })
.attr('y', function(d) { return yScale(d[city]) + (margin.top)})
.attr('width', rectWidth)
.attr('height', function(d) { return height - yScale(d[city])})
.attr('fill', 'blue')
.attr('stroke', 'white')
.on('click', function(d) {
console.log(d[city])
});
debugger;
});
</script>
</body>
https://d3js.org/d3.v4.min.js