Built with blockbuilder.org
Created
November 23, 2016 03:17
-
-
Save DarienLiang/32ba5f4bddf0a29e2cb02c3a157b6156 to your computer and use it in GitHub Desktop.
fresh block
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
license: mit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<meta charset="utf-8"> | |
<style> /* set the CSS */ | |
body { font: 12px Arial;} | |
path { | |
stroke: steelblue; | |
stroke-width: 2; | |
fill: none; | |
} | |
.axis path, | |
.axis line { | |
fill: none; | |
stroke: grey; | |
stroke-width: 1; | |
shape-rendering: crispEdges; | |
} | |
.legend { | |
font-size: 16px; | |
font-weight: bold; | |
text-anchor: middle; | |
} | |
</style> | |
<body> | |
<!-- load the d3.js library --> | |
<script src="https://d3js.org/d3.v3.min.js"></script> | |
<script> | |
// Set the dimensions of the canvas / graph | |
var margin = {top: 30, right: 20, bottom: 70, left: 50}, | |
width = 600 - margin.left - margin.right, | |
height = 300 - margin.top - margin.bottom; | |
// Parse the date / time | |
var parseDate = d3.time.format("%b %Y"); | |
// Set the ranges | |
var x = d3.time.scale().range([0, width]); | |
var y = d3.scale.linear().range([height, 0]); | |
// Define the line | |
var priceline = d3.svg.line() | |
.x(function(d) { return x(d.date); }) | |
.y(function(d) { return y(d.price); }); | |
// Adds the svg canvas | |
var svg = d3.select("body") | |
.append("svg") | |
.attr("width", width + margin.left + margin.right) | |
.attr("height", height + margin.top + margin.bottom) | |
.append("g") | |
.attr("transform", | |
"translate(" + margin.left + "," + margin.top + ")"); | |
// Get the data | |
d3.csv("weather2.csv", function(error, data) { | |
data.forEach(function(d) { | |
d.date = parseDate.parse(d.date); | |
d.price = +d.price; | |
}); | |
// Scale the range of the data | |
x.domain(d3.extent(data, function(d) { return d.date; })); | |
y.domain([0, d3.max(data, function(d) { return d.price; })]); | |
// Nest the entries by symbol | |
var dataNest = d3.nest() | |
.key(function(d) {return d.symbol;}) | |
.entries(data); | |
// set the colour scale | |
var color = d3.scale.category10(); | |
// Loop through each symbol / key | |
dataNest.forEach(function(d,i) { | |
console.log(d); | |
svg.append("path") | |
.attr("class", "line") | |
.style("stroke", function() { // Add the colours dynamically | |
return d.color = color(d.key); }) | |
.attr("id", 'tag'+d.key.replace(/\s+/g, '')) // assign an ID | |
.attr("d", priceline(d.values)); | |
}); | |
/* | |
// Add the X Axis | |
svg.append("g") | |
.attr("class", "axis") | |
.attr("transform", "translate(0," + height + ")") | |
.call(d3.axisBottom(x)); | |
// Add the Y Axis | |
svg.append("g") | |
.attr("class", "axis") | |
.call(d3.axisLeft(y)); | |
*/ | |
}); | |
</script> | |
</body> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment