Javascript ';巴拉迪乌斯';ChartJS中的条形图不起作用

Javascript ';巴拉迪乌斯';ChartJS中的条形图不起作用,javascript,chart.js,Javascript,Chart.js,我正在开发chartjs(版本2.7.2)。我想创建一个具有边界半径的条形图(根据chartjs选项为“barradius”) 大概是这样的: 我已经为巴拉迪乌斯:4设置了值,但它不起作用 HTML: 同时从这里检查据我在类似问题中看到的,解决方案应该是扩展Chart.types.Bar.extend Chart.types.Bar.extend({ 姓名:“巴拉特”, 初始化:函数(数据){ Chart.types.Bar.prototype.initialize.apply(这是参数);

我正在开发chartjs(版本2.7.2)。我想创建一个具有边界半径的条形图(根据chartjs选项为“barradius”)

大概是这样的:

我已经为巴拉迪乌斯:4设置了值,但它不起作用

HTML:


同时从这里检查

据我在类似问题中看到的,解决方案应该是扩展
Chart.types.Bar.extend

Chart.types.Bar.extend({
姓名:“巴拉特”,
初始化:函数(数据){
Chart.types.Bar.prototype.initialize.apply(这是参数);

如果(this.options.curvature!==undefined&&this.options.curvature我现在就删除这个答案不!没有必要好吧,但恐怕ppl会投10票反对票。比如……无论如何,我会让它留在这里,不会发生这种情况,你要么把这个问题标记为重复的问题,要么只提及答案的原始作者。试过这个吗获取“未捕获的TypeError:无法读取未定义的属性“extend”
<canvas id="myChart" width="400" height="200"></canvas>
var canvas = document.getElementById('myChart');
var data = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [
        {
            label: "My First dataset",
            backgroundColor: "rgba(255,99,132,0.2)",
            borderColor: "rgba(255,99,132,1)",
            borderWidth: 2,
            hoverBackgroundColor: "rgba(255,99,132,0.4)",
            hoverBorderColor: "rgba(255,99,132,1)",
            data: [65, 59, 20, 81, 56, 55, 40],
        }
    ]
};
var option = {
    title: {
        display: false,
    },
    tooltips: {
        intersect: false,
        mode: 'nearest',
        xPadding: 10,
        yPadding: 10,
        caretPadding: 10
    },
    legend: {
        display: false
    },
    responsive: true,
    maintainAspectRatio: false,
    barRadius: 4,
    scales: {
        xAxes: [{
            display: false,
            gridLines: false,
            stacked: true
        }],
        yAxes: [{
            display: false,
            stacked: true,
            gridLines: false
        }]
    },
    layout: {
        padding: {
            left: 0,
            right: 0,
            top: 0,
            bottom: 0
        }
    }
};

var myBarChart = Chart.Bar(canvas, {
    data: data,
    options: option
});

var myBarChart = Chart.Bar(canvas, {
    data: data,
    options: option
});
Chart.types.Bar.extend({
    name: "BarAlt",
    initialize: function (data) {
        Chart.types.Bar.prototype.initialize.apply(this, arguments);

        if (this.options.curvature !== undefined && this.options.curvature <= 1) {
            var rectangleDraw = this.datasets[0].bars[0].draw;
            var self = this;
            var radius = this.datasets[0].bars[0].width * this.options.curvature * 0.2;

            // override the rectangle draw with ours
            this.datasets.forEach(function (dataset) {
                dataset.bars.forEach(function (bar) {
                    bar.draw = function () {
                        // draw the original bar a little down (so that our curve brings it to its original position)
                        var y = bar.y;
                        // the min is required so animation does not start from below the axes
                        bar.y = Math.min(bar.y + radius, self.scale.endPoint - 1);
                        // adjust the bar radius depending on how much of a curve we can draw
                        var barRadius = (bar.y - y);
                        rectangleDraw.apply(bar, arguments);

                        // draw a rounded rectangle on top
                        Chart.helpers.drawRoundedRectangle(self.chart.ctx, bar.x - bar.width / 2, bar.y - barRadius + 1, bar.width, bar.height, barRadius);
                        ctx.fill();

                        // restore the y value
                        bar.y = y;
                    }
                })
            })
        }
    }
});