JSFiddle - React, Tailwind, and code Playground
HTML
<button id="btn">Click</button>
<div id="chart" />
CSS
body {
font: 10px sans-serif;
}
.axis path, .axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.x.axis path {
/*display: none;*/
}
.line {
fill: none;
stroke: steelblue;
stroke-width: 1.5px;
}
JavaScript
var lineData = [{tick: 1361301280000, values: [0, 2, 0.2, 5]},
{tick: 1361301282000, values: [1, 1, 1, 5.1]},
{tick: 1361301283000, values: [1.5, 2, 12.3, 5.7]},
{tick: 1361301284000, values: [2.3, 3, 10, 4.2]},
{tick: 1361301285000, values: [4, 4, 10.5, 9.1]},
{tick: 1361301286000, values: [0.4, 8, 10.7, 9.2]}
];
var tick = d3.max(lineData, function(d) { return d.tick; });
var width = 500; var height = 300;
var maxElements = 60;
var margin = {top: 20, right: 80, bottom: 30, left: 50};
width = width - margin.left - margin.right;
height = height - margin.top - margin.bottom;
function pushNewData()
{
var array = [];
for(i = 0; i < 4; i++)
array.push((i*5)+Math.random() * 5);
tick += 1000;
lineData.push({
tick: tick,
values: array
});
}
for(var a = lineData.length; a < maxElements - 10; a++)
pushNewData();
function getStartTick(data)
{
return d3.min(data, function(d) { return d.tick; }) - (maxElements - data.length) * 1000;
}
var color = d3.scale.category10().domain([0, 1, 2, 3]);
var svg = d3.select("#chart").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 + ")");
function render(data)
{
var startTick = getStartTick(data);
var x = d3.time.scale().range([0, width]);
x.domain([startTick, d3.max(data, function(d) { return d.tick; })]);
console.log(x.ticks());
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom")
.ticks(5);
var y = d3.scale.linear()
.range([height, 0]);
y.domain([
d3.min(data, function(c) { return d3.min(c.values, function(v) { return v; }); }),
d3.max(data, function(c) { return d3.max(c.values, function(v) { return v; }); })
]);
var yAxis =...