|
<!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; |
|
} |
|
|
|
</style> |
|
<body> |
|
|
|
<!-- load the d3.js library --> |
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js"></script> |
|
|
|
<script> |
|
|
|
// Set the dimensions of the canvas / graph |
|
var margin = {top: 30, right: 20, bottom: 30, left: 50}, |
|
width = 600 - margin.left - margin.right, |
|
height = 270 - margin.top - margin.bottom; |
|
|
|
// Parse the date / time |
|
var parseDate = d3.time.format("%d-%b-%y").parse; |
|
|
|
// Set the ranges |
|
var x = d3.time.scale().range([0, width]); |
|
var y = d3.scale.linear().range([height, 0]); |
|
|
|
// Define the axes |
|
var xAxis = d3.svg.axis().scale(x) |
|
.orient("bottom").ticks(5); |
|
|
|
var yAxis = d3.svg.axis().scale(y) |
|
.orient("left").ticks(5); |
|
|
|
// Define the line |
|
var valueline = d3.svg.line() |
|
.x(function(d) { return x(d.date); }) |
|
.y(function(d) { return y(d.close); }); |
|
|
|
// 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("data.csv", function(error, data) { |
|
data.forEach(function(d) { |
|
d.date = parseDate(d.date); |
|
d.close = +d.close; |
|
}); |
|
|
|
// 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.close; })]); |
|
|
|
// Add the valueline path. |
|
svg.append("path") |
|
.attr("class", "line") |
|
.attr("d", valueline(data)); |
|
|
|
// Add the X Axis |
|
svg.append("g") |
|
.attr("class", "x axis") |
|
.attr("transform", "translate(0," + height + ")") |
|
.call(xAxis); |
|
|
|
// Add the Y Axis |
|
svg.append("g") |
|
.attr("class", "y axis") |
|
.call(yAxis); |
|
|
|
}); |
|
|
|
</script> |
|
</body> |
I'm new in GitHub.. I'm intermediate with Processing (not .js).. Now I create project which read data from csv/tsv and plot it on webserver (sharing over browser).. I've problem with read data csv which data update periodically.. This code can't read realtime CSV. How to make it read data periodically.. (I'm new on javasript: d3,processing.js, etc) Thank you