如何更改一个特定行的网格线宽

时间:2016-04-22 13:53:33

标签: javascript chart.js

我需要帮助更改Chartjs图表上某个特定网格线的线宽(或颜色)。

在下面的示例中,我想仅在y轴60处增加水平网格线的网格线宽度(或更改颜色)。我尽力在Chartjs文档中找到解决方案,但失败了。也许目前没有对此的支持,如果是这样,我想知道是否有人可以帮助我添加此功能。

http://i.stack.imgur.com/nFB77.jpg

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以扩展图表以覆盖缩放绘制功能,并在您想要的位置绘制更粗/不同颜色的行

预览

enter image description here

<强>脚本

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

        var originalScaleDraw = this.scale.draw;
        this.scale.draw = function() {
             originalScaleDraw.apply(this, arguments);
             this.ctx.save();
             this.ctx.beginPath();
             this.ctx.lineWidth = this.gridLineWidth * 5;
             this.ctx.strokeStyle = "rgba(120,120,220,1)";
             this.ctx.moveTo(Math.round(this.xScalePaddingLeft), this.calculateY(60));
             this.ctx.lineTo(this.width, this.calculateY(60));
             this.ctx.stroke();
             this.ctx.closePath();
             this.ctx.restore();
        }
    }
});

然后

...
new Chart(ctx).BarAlt(data);

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