EDIT: here is the fill version working http://jsfiddle.net/leighking2/sLgefm04/6/
Thus, one way to do this is to extend the line graph. The only problem is that you need to override the entire initialization method so that all points are saved correctly. Here is a fiddle showing its own graph that does what you describe http://jsfiddle.net/leighking2/sLgefm04/
important bits that were changed from the original graphic, I put large blocks of comments, so here are the main points, in the example o they used null to represent spaces, but it could just be replaced with -1
in the initialization method, the data is processed and included in the points, this is where the change should occur to allow the missing data to still be included
helpers.each(dataset.data, function(dataPoint, index) { if (helpers.isNumber(dataPoint) || dataPoint === null) {
then in the drawing method, whenever we are at a data point that we want to ignore or just past, we move the pen and not draw
helpers.each(dataset.points, function(point, index) { if (index > 0 && !dataset.points[index - 1].ignore && !point.ignore) { if (this.options.bezierCurve) { ctx.bezierCurveTo( dataset.points[index - 1].controlPoints.outer.x, dataset.points[index - 1].controlPoints.outer.y, point.controlPoints.inner.x, point.controlPoints.inner.y, point.x, point.y ); } else { ctx.lineTo(point.x, point.y); } } else if (index === 0 || dataset.points[index - 1].ignore) { ctx.moveTo(point.x, point.y); } }, this);
the only problem with this was the filling looking proper funky, so I commented on this and this is just a line graph.