Chartjs:将新类型作为现有类型的组合

时间:2019-06-06 09:27:24

标签: javascript charts chart.js

我想创建一种新的图形,它是两种现有图形类型的混合。例如。一个“ lineBar”。

我知道chartjs可以混合使用多种类型,请参见Mixed Chart Types

var mixedChart = new Chart(ctx, {
    type: 'bar',
    data: {
        datasets: [{
            label: 'Bar Dataset',
            data: [10, 20, 30, 40]
        }, {
            label: 'Line Dataset',
            data: [50, 50, 50, 50],

            // Changes this dataset to become a line
            type: 'line'
        }],
        labels: ['January', 'February', 'March', 'April']
    },
    options: options
});

我也知道chartjs通过扩展现有的图表类型来允许自定义图表类型,请参见New Charts

var custom = Chart.controllers.bubble.extend({
    draw: function(ease) {
        // Call super method first
        Chart.controllers.bubble.prototype.draw.call(this, ease);

        // Now we can do some custom drawing for this dataset. Here we'll draw a red box around the first point in each dataset
        var meta = this.getMeta();
        var pt0 = meta.data[0];
        var radius = pt0._view.radius;

        var ctx = this.chart.chart.ctx;
        ctx.save();
        ctx.strokeStyle = 'red';
        ctx.lineWidth = 1;
        ctx.strokeRect(pt0._view.x - radius, pt0._view.y - radius, 2 * radius, 2 * radius);
        ctx.restore();
    }
});

我想要的是两者的结合。我希望能够获得一个新图表,该图表可以在一次调用中显示两种不同的类型(例如,均线标出的条形图)。

我尝试在扩展的初始化部分更改图表对象,但是添加更多数据集会导致buildOrUpdateElements错误。

如何创建新的图表类型,将现有图表类型组合在一起?

0 个答案:

没有答案