1

按照此链接使用 draw() 函数扩展 Scatter 类型,以在中心打印“未找到数据”,但使用 Y 轴刻度。

这是代码:

Chart.defaults.derivedScatter = Chart.defaults.scatter;

var ctx = canvas.getContext("2d");

var custom = Chart.controllers.scatter.extend({
    draw: function() {
        Chart.controllers.scatter.prototype.draw.call(this);

        this.chart.chart.ctx.textAlign = "center";
        this.chart.chart.ctx.font = "11px Arial";
        this.chart.chart.ctx.fillText("No data found", 45, 100);
    }
});

Chart.controllers.derivedScatter = custom;

chart = new Chart(ctx, {
    type: "derivedScatter",
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true,
                    max:0.10,
                    stepSize:0.001,
                    callback: function(label, index, labels) {
                        var n = parseFloat(label);
                        return (Math.round(n*1000)/10).toFixed(1);
                    }
                },
                gridLines: {
                    display: false,
                    drawBorder: false
                }
            }],
            xAxes: [{
                display: false,
                gridLines: {
                   display: false
                }
            }]
        },
        legend: {
            display:false
        },
        responsive: false
    }
});

我正在获取 Y 轴刻度,但在图表的中心没有看到 No data found 作为文本。它似乎不起作用。

看了这个这个堆栈溢出的答案来提出这个解决方案。

注意:这里并没有说他们有 Scatter 的内置类型。是这个原因吗?

任何其他方法或任何其他帮助将不胜感激。

4

1 回答 1

1
于 2017-09-11T22:15:02.487 回答