如何为chartjs栏中的每个条设置全长背景颜色

Dhi*_*ran 5 bar-chart chart.js

如何为chartjs栏中的每个条设置全长背景颜色

请参阅下面的链接我需要相同的输出 https://drive.google.com/file/d/0B4X0e4vwH_UPVGxWN2NBdURyZ0E/view?usp=sharing

pot*_*ngs 4

您可以调整其他答案以仅显示酒吧的背景 - 请注意,在这种情况下您将需要酒吧集合

Chart.types.Bar.extend({
    name: "BarAlt",
    initialize: function (data) {
        var self = this;
        var originalBuildScale = self.buildScale;
        self.buildScale = function () {
            originalBuildScale.apply(this, arguments);

            var ctx = self.chart.ctx;
            var scale = self.scale;
            var originalScaleDraw = self.scale.draw;
            var barAreaWidth = scale.calculateX(1) - scale.calculateX(0);
            var barAreaHeight = scale.endPoint - scale.startPoint;

            self.scale.draw = function () {
                originalScaleDraw.call(this, arguments);
                ctx.fillStyle = data.barBackground;
                self.datasets.forEach(function (dataset) {
                    dataset.bars.forEach(function (bar) {
                        ctx.fillRect(
                            bar.x - bar.width / 2,
                            scale.startPoint,
                            bar.width,
                            barAreaHeight);
                    })
                })
                ctx.fill();
            }
        }

        Chart.types.Bar.prototype.initialize.apply(this, arguments);
    }
});
Run Code Online (Sandbox Code Playgroud)

像这样的图表数据

var data = {
    barBackground: "rgba(221, 224, 229, 1)",
    ...
Run Code Online (Sandbox Code Playgroud)

和这样的电话(像以前一样)

var ctx = document.getElementById("chart").getContext("2d");
var myBarChart = new Chart(ctx).BarAlt(data, {
    barValueSpacing: 15,
});
Run Code Online (Sandbox Code Playgroud)

小提琴 - http://jsfiddle.net/ayy2vxsj/


在此输入图像描述