我想使用chartjs绘制虚线。我没有看到创建虚线的任何选项。我觉得我们需要扩展chartjs以支持这一点。有人可以帮助我吗?
答案 0 :(得分:6)
在Chart.js 2.1+
中,使用数据集中的borderDash
选项。它需要两个数字的数组。 See this codepen
答案 1 :(得分:4)
您不需要扩展图表,但这样做会更清晰。
预览强>
<强>脚本强>
Chart.types.Line.extend({
name: "LineAlt",
initialize: function () {
Chart.types.Line.prototype.initialize.apply(this, arguments);
var ctx = this.chart.ctx;
var originalBezierCurveTo = ctx.bezierCurveTo;
ctx.bezierCurveTo = function () {
ctx.setLineDash([10, 10]);
originalBezierCurveTo.apply(this, arguments)
}
}
});
...
new Chart(ctx).LineAlt(chartData);
小提琴 - https://jsfiddle.net/ahj6u14e/
注意 - 另一种方法是使用图表对象覆盖bezierCurveTo
。
这是有效的,因为bezierCurveTo
仅用于绘制线条。如果你想为直线做这件事,那就不行了,因为lineTo
用于其他东西(轴,网格线......)
我上次查看时,Chart.js 2.0有一个borderDash
选项(参见https://stackoverflow.com/a/31428640/360067)
答案 2 :(得分:0)