如何使用 ChartJS 获取水平条?

问题描述 投票:0回答:2

使用官方 ChartJS 文档,我试图为我的每个数据获取水平条。我尝试使用 x 或 y,更改选项或数据集但没有成功。我应该指出,没有其他 JS 或 SCSS 应用于此。如何有单杠?非常感谢!

结果:

树枝

<canvas id="skills{{ i }}"> </canvas>

JS

    var chartContainer2 = document.getElementById('skills0');
    var ctxSkills = chartContainer2.getContext('2d');

    const data = {
        labels: ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
        datasets: [{
            axis: 'y',
            label: 'My First Dataset',
            data: [65, 59, 80, 81, 56, 55, 40],
            fill: false,
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(255, 159, 64, 0.2)',
                'rgba(255, 205, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(201, 203, 207, 0.2)'
            ],
            borderColor: [
                'rgb(255, 99, 132)',
                'rgb(255, 159, 64)',
                'rgb(255, 205, 86)',
                'rgb(75, 192, 192)',
                'rgb(54, 162, 235)',
                'rgb(153, 102, 255)',
                'rgb(201, 203, 207)'
            ],
            borderWidth: 1
        }]
    };
    var chartBar = new Chart(chartContainer2, {
        type: 'bar',
        data,
        options: {
            indexAxis: 'y',
            scales: {
                x: {
                    min: 0,
                    max: 100,
                    stacked: true
                },
                y: [{
                    stacked: true
                }]
            },
        }
    });

我还希望左边的数字从 0 到 100(我尝试用 x : min/max 来做,但它不起作用)

谢谢!!!

chart.js
2个回答
1
投票

由于

indexAxis: 'y'
不适合您,在这种情况下您似乎使用的是 chart.js 的 V2,您需要将类型指定为
'horizontalBar'
而不是
'bar'


0
投票

非常感谢@LeeLenalee 的回答。我确实还在使用 ChartJS 的 2.9.4 版本,而我在 package.json 或 yarn.lock 中使用的是 4.2.1 版本。不要忘记执行 npm cache-clean -force 来更新版本。

© www.soinside.com 2019 - 2024. All rights reserved.