Example

//we prevent from the chart to be recreated each time a new data is received
if (this.oilConsumptionChart) return;
//we find the bounding box of the chart
const bbox = oil_chart_anim.go().node().getBBox();
const container = oil_chart_anim.go().attr('transform', 'translate('+[bbox.x, bbox.y]+')');
const DATE_PARSER = d3.time.format("%Y-%m-%dT%H:%M:%S");
//we create a void chart
this.oilConsumptionChart = new WILCO.Graph(container, bbox.width, bbox.height);
//we set the title
this.oilConsumptionChart.title(`OIL csp`);
//we deal with the look of the curve
const options = {
color:'#63b8ff',
width:1,
opacity:1,
yDomain=[OIL_CONSUMPTION.minScale,OIL_CONSUMPTION.maxScale]
};
// the points of the curve is always a {x, y} structure (numbers or dates)
const points = OIL_CONSUMPTION.history().map(d=>{
return {
x:DATE_PARSER.parse(d.date),
y:+d
};
});
//now we draw it.
this.oilConsumptionChart.drawSerie('OIL consumption',points,options);
// there are shortcuts to create lines
if (OIL_CONSUMPTION.maxOK) {
this.oilConsumptionChart.drawHorizontalLine('maxOK', OIL_CONSUMPTION.maxOK, {color:'red', width:1.5, opacity:1});
}
if (OIL_CONSUMPTION.minOK) {
this.oilConsumptionChart.drawHorizontalLine('minOK', OIL_CONSUMPTION.minOK, {color:'darkorange', width:1.5, opacity:1});
}
Last updated
Was this helpful?