Chart.js - draw horizontal line

后端 未结 4 948
渐次进展
渐次进展 2020-11-27 19:05

I would like to draw a horizontal line in a chart using Chart.js. But I\'m not able to do it.

I\'ve read this question - Chart.js — drawing an arbitrary vertical lin

4条回答
  •  醉话见心
    2020-11-27 19:45

    Here is the JavaScript code to draw a horizontal line.

    var data = {
        labels: ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"],
        datasets: [{
            data: [12, 3, 2, 1, 8, 8, 2, 2, 3, 5, 7, 1]
        }]
    };
    
    var ctx = document.getElementById("LineWithLine").getContext("2d");
    
    Chart.types.Line.extend({
        name: "LineWithLine",
        initialize: function () {
            Chart.types.Line.prototype.initialize.apply(this, arguments);
        },
        draw: function () {
            Chart.types.Line.prototype.draw.apply(this, arguments);
    
            var point = this.datasets[0].points[this.options.lineAtIndex]
            var scale = this.scale
            console.log(this);
    
            // draw line
            this.chart.ctx.beginPath();
            this.chart.ctx.moveTo(scale.startPoint+12, point.y);
            this.chart.ctx.strokeStyle = '#ff0000';
            this.chart.ctx.lineTo(this.chart.width, point.y);
            this.chart.ctx.stroke();
    
            // write TODAY
            this.chart.ctx.textAlign = 'center';
            this.chart.ctx.fillText("TODAY", scale.startPoint + 35, point.y+10);
        }
    });
    
    new Chart(ctx).LineWithLine(data, {
        datasetFill : false,
        lineAtIndex: 2
    });
    

    http://jsfiddle.net/7a4hhzge/455/

    This is based off of the code used to draw an arbitrary vertical line, it may not be perfect but you should be able to adjust it to fit your needs.

提交回复
热议问题