2在Pareto图表中显示值

2在Pareto图表中显示值

本文介绍了使用Chart.js 2.0.2在Pareto图表中显示值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我有一个帕累托图表(使用Chart.js版本:2.0.2),我需要在栏内和行下显示值。

I have a Pareto chart (using Chart.js Version: 2.0.2) and i need to display values inside of the bars and under the line.

任何非常感谢帮助:

这是代码(希望它对某些人有用):

This is the code (hope that it is useful for somebody):

<canvas id="canvas"></canvas>

<script type="text/javascript">
    var data = {
        labels: ["8","7","9","11","10"],
        datasets: [{
            type: "line",
            label: "Acumulado",
            borderColor: "#BA1E14",
            backgroundColor: "#BA1E14",
            pointBorderWidth: 5,
            fill: false,
            data: [34.04,57.45,76.60,89.36,100.00],
            yAxisID: 'y-axis-2'
        },{
            type: "bar",
            label: "Asistencia",
            borderColor: "#56B513",
            backgroundColor: "#56B513",
            data: [16,11,9,6,5],
            yAxisID: 'y-axis-1'
        },{
            type: "bar",
            label: "Solución",
            borderColor: "#000FAA",
            backgroundColor: "#000FAA",
            data: [16,11,9,6,5],
            yAxisID: 'y-axis-1'
        }]
    };

    var options = {
        scales: {
            xAxes: [{
                stacked: true,
                scaleLabel: {
                    display: true,
                    labelString: "Estaciones"
                }
            }],

            yAxes: [{
                type: "linear",
                position: "left",
                id: "y-axis-1",
                stacked: true,
                ticks: {
                    suggestedMin: 0
                },
                scaleLabel: {
                    display: true,
                    labelString: "Minutos"
                }
            },{
                type: "linear",
                position: "right",
                id: "y-axis-2",
                ticks: {
                    suggestedMin: 0,
                    callback: function(value) {
                        return value + "%";
                    }
                },
                scaleLabel: {
                    display: true,
                    labelString: "Porcentaje"
                }
            }]
        }
    };

    window.onload = function() {
        var ctx = document.getElementById("canvas").getContext("2d");

        window.myBar = new Chart(ctx, {
            type: 'bar',
            data: data,
            options: options
        });
    };
</script>

现在图表如下所示:

我需要它看起来像这样:

Right now the chart looks like this:And i need it to look like this:

推荐答案

这是我开发的答案(仅在选项对象中):

This is the answer i developed (only in the options object):

var options = {
    animation: {
        onComplete: function() {
            var ctx = this.chart.ctx;
            ctx.textAlign = "center";
            ctx.textBaseline = "middle";

            this.chart.config.data.datasets.forEach(function(dataset) {
                ctx.font = "20px Arial";
                switch (dataset.type) {
                    case "line":
                        ctx.fillStyle = "Black";
                        dataset.metaData.forEach(function(p) {
                            ctx.fillText(p._chart.config.data.datasets[p._datasetIndex].data[p._index], p._model.x, p._model.y - 20);
                        });
                        break;
                    case "bar":
                        ctx.fillStyle = "White";
                        dataset.metaData.forEach(function(p) {
                            ctx.fillText(p._chart.config.data.datasets[p._datasetIndex].data[p._index], p._model.x, p._model.y  + 20);
                        });
                        break;
                }
            });
        }
    }
...
};

这就是结果:

这篇关于使用Chart.js 2.0.2在Pareto图表中显示值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 21:11