您可以掛接到第一點的draw
功能(因爲你基本上是封閉的線路做填充繪製的路徑),使用Y = 0點,收這樣做就像這樣。
Chart.types.Line.extend({
name: "LineAlt",
initialize: function (data) {
Chart.types.Line.prototype.initialize.apply(this, arguments);
var scale = this.scale;
var firstDataset = this.datasets[0];
var firstPoint = firstDataset.points[0];
var min = (scale.min > 0 ? scale.min : (scale.max > 0 ? 0 : scale.max));
originalDraw = firstPoint.draw;
firstPoint.draw = function() {
ctx.lineTo(firstDataset.points[firstDataset.points.length - 1].x, scale.calculateY(min));
ctx.lineTo(firstDataset.points[0].x, scale.calculateY(min));
ctx.fillStyle = firstDataset.fillColor;
ctx.closePath();
ctx.fill();
return originalDraw.apply(this, arguments);
}
}
});
,你也有關閉datasetFill選項(因爲我們對我們自己做這件事)
var myChart = new Chart(ctx).LineAlt(data, {
datasetFill: false
});
如果你也想移動x軸標籤,最乾淨的方式做這將是關閉當前標籤,只是使用xLabels
收集繪製自己的
小提琴 - http://jsfiddle.net/dnpo61tu/
哇,謝謝!出於某種原因,它只會爲我畫一條灰線,直到我在一個工具提示上徘徊,然後它會用我選擇的正確藍色陰影重繪圖表。 'myChart.update();'在啓動圖表之後修復了圖表 – andrewtweber
啊,您可能將動畫設置爲false。 – potatopeelings
啊,是的,我這樣做。再次感謝 – andrewtweber