chart.js中的水平条形图

s.k*_*aul 9 chart.js

我正在尝试使用chart.js 2.3.0绘制一个水平条形图 -

 var MeSeContext = document.getElementById("MeSeStatusCanvas").getContext("2d");
    var MeSeData = {
        labels: [
            "ME",
            "SE"
        ],
        datasets: [
            {
                label: "Test",
                data: [100, 75],
                backgroundColor: ["#669911", "#119966" ],
                hoverBackgroundColor: ["#66A2EB", "#FCCE56"]
            }]
    };

var MeSeChart = new Chart(MeSeContext, {
    type: 'horizontalBar',
    data: MeSeData,
    options: {
        scales: {
            yAxes: [{
                stacked: true
            }]
        }

    }
});
Run Code Online (Sandbox Code Playgroud)

但它只显示一个酒吧.我在这里想念的是什么?

tek*_*tiv 23

您只能看到一个图表,因为数据的最低值(此处75)是比例的左边界限.

如下面的代码结果截图所示,如果您将鼠标悬停在比例尺上,您仍然可以看到相关数据,这意味着它就在这里.

在此输入图像描述


您有两种方法可以解决此问题:

  • minxScale刻度的属性设置为您想要的值(当然足以看到它):

    var MeSeChart = new Chart(MeSeContext, {
        type: 'horizontalBar',
        data: MeSeData,
        options: {
            scales: {
                xAxes: [{
                    ticks: {
                        min: 60 // Edit the value according to what you need
                    }
                }],
                yAxes: [{
                    stacked: true
                }]
            }
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)

    你可以在这个jsFiddle上看到min设置为60 的结果:

    在此输入图像描述

  • beginAtZero属性设置为true,与设置min为0 相同:

    xAxes: [{
        ticks: {
            beginAtZero: true
        }
    }],
    
    Run Code Online (Sandbox Code Playgroud)

    您可以在此jsFiddle上查看beginAtZero属性设置为的结果.true