chart.js中的水平条形图

时间:2016-10-26 04:56:39

标签: 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
            }]
        }

    }
});

但它只显示一个栏。我在这里想念的是什么?

1 个答案:

答案 0 :(得分:21)

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

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

enter image description here

您有两种解决方法:

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

    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
                }]
            }
        }
    });
    

    您可以在min设置为60 on this jsFiddle的情况下查看结果:

    enter image description here

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

    xAxes: [{
        ticks: {
            beginAtZero: true
        }
    }],
    

    您可以在beginAtZero属性设置为true on this jsFiddle的情况下查看结果。