我正在使用chart.js,并且在我的图表中的某些点上,我在多天条目之间有一些缺失的数据.我已将这些值指定为null,但希望图表在缺失点之间绘制连接线.这是我有的:
有没有办法连接chart.js中的点?或者也许有人可以指向我可以的图表库.谢谢.
解决方法
我有同样的问题,我修改了这样的
this版本:
var lastPoint = null;
helpers.each(dataset.points,function (point,index) {
if (!point.ignore && dataset.skipNullValues && lastPoint) {
ctx.beginPath();
ctx.moveto(lastPoint.x,lastPoint.y);
if (this.options.bezierCurve) {
ctx.bezierCurveto(
lastPoint.controlPoints.outer.x,lastPoint.controlPoints.outer.y,point.controlPoints.inner.x,point.controlPoints.inner.y,point.x,point.y
);
} else {
ctx.lineto(point.x,point.y);
}
ctx.stroke();
}
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.y
);
}
else {
ctx.lineto(point.x,point.y);
}
lastPoint = point;
}
else if (index === 0 || !point.ignore) {
ctx.moveto(point.x,point.y);
if (!point.ignore) {
lastPoint = point;
}
}
},this);
为了更好的结构,我为数据集设置了一个名为“skipNullValues”的属性:
var datasetobject = {
label: dataset.label || null,fillColor: dataset.fillColor,strokeColor: dataset.strokeColor,pointColor: dataset.pointColor,pointstrokeColor: dataset.pointstrokeColor,tooltip: dataset.tooltip,line: dataset.line,fill: dataset.fill,points: [],skipNullValues: dataset.skipNullValues
};
Here是完整的工作版!
也许有一个更好的解决方案,但对我的用途它是有效的.
如果它适合您,请告诉我!