Built with blockbuilder.org
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 = 'Austin';
var width = 834;
var height = 300;
var marginValue = 25;
var margin = {
top: marginValue,
bottom: marginValue,
left: marginValue,
right: marginValue
};
// dataset of city temperatures across time
d3.tsv('data.tsv', (err, data) => {
// clean the data
// data = data.slice(0, 200);
data.forEach(d => {
d.date = d3.timeParse("%Y%m%d")(d.date);
d.date = new Date(d.date); // x
d[city] = ++d[city]; // y
});
// scales
var xExtent = d3.extent(data, d => d.date);
// min && max dates
var xScale = d3.scaleTime()
.domain(xExtent)
.range([margin.left, width - margin.right]);
var yMax = d3.max(data, d => d[city]);
var yScale = d3.scaleLinear()
.domain([0, yMax])
.range([height - margin.bottom, margin.top]);
var line = d3.line()
.x((d) => {return xScale(d.date);})
.y((d) => {return yScale(d[city])})
.curve(d3.curveCatmullRom)
d3.select('svg')
.append('path')
.attr('d', line(data))
.attr('fill', 'none')
.attr('stroke', 'tomato');
});
</script>
</body>
https://d3js.org/d3.v4.min.js