Chart.js:同一图表中的直线和曲线

时间:2016-02-29 20:04:14

标签: chart.js

无法在同一图表中获得直线和曲线,同时为数据集 bezierCurve:false bezierCurve:true 但未获取数据集,此处为是文件:http://fiddle.jshell.net/2omjx9dn/44/

在一个图表中需要两个不同图形的这两个图形线: http://fiddle.jshell.net/2omjx9dn/42/

任何帮助都会很棒!!!!

1 个答案:

答案 0 :(得分:0)

bezierCurve是图表级别(不是数据集级别)选项。因此,您需要覆盖图表才能执行此操作。最简单的方法是插入hasValue函数(在绘制数据集行之前调用它)

Chart.types.Line.extend({
    name: "LineAlt",
    initialize: function (data) {
        Chart.types.Line.prototype.initialize.apply(this, arguments);

        var options = this.options;
        this.datasets.forEach(function (dataset, index) {
            var originalHasValue = dataset.points[0].hasValue;
            dataset.points[0].hasValue = function () {
                // change option by dataset index here
                options.bezierCurve = (index === 0) ? true : false;
                return originalHasValue.apply(this, arguments)
            }
        })
    }
});

然后

...
var myLineChart = new Chart(ctx).LineAlt(data);