图表js-将宽度设置为特定的条形

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

我正在使用chart.js,它是条形图。我正在显示一些12个月的数据。我想做的是将代表当前月份的柱形的宽度设置为比其他月份更高的值。但是,我不确定如何执行此操作,因为我只看到了将宽度设置为数据集中每个条形的选项。这是我目前拥有的选项:

const options = {
    type: "bar",
    data: {
        labels: counties.map(county => dateStringEU(county.Date.split(" ")[0])).reverse(),
        datasets: [
            {
                backgroundColor: "#006BE8",
                borderColor: "rgba(151,187,205,1)",
                barPercentage: 0.9,
                categoryPercentage: 0.9,
            }
        ]
    },
    options: {
        legend: {
            display: false
        },
        scales: {
            yAxes: [
                {
                    ticks: {
                        fontColor: '#736B8A',
                        beginAtZero: true,
                        stepSize: 100
                    },
                    gridLines: {
                        display: false
                    }
                }
            ],
            xAxes: [
                {
                    ticks: {
                        fontColor: '#736B8A'
                    },
                    gridLines: {
                        display: false
                    }
                }
            ]
        }
    }
}

是否可以分别设置每个条的宽度,如果可以,我们该怎么做?

javascript chart.js
1个回答
0
投票

不幸的是,这不是明确的documented,但是您可以将barPercentage定义为值的数组。

barPercentage: [0.5, 0.5, 0.5, 0.5, 1, 0.5, 0.5],

[请查看Chart.js文档中的修订代码。

new Chart(document.getElementById("chart"), {
  type: "bar",
  data: {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [{
      label: "My First Dataset",
      data: [65, 59, 80, 81, 56, 55, 40],
      barPercentage: [0.5,0.5,0.5,0.5,1,0.5,0.5],
      categoryPercentage: 1,
      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
    }]
  },
  options: {
    scales: {
      yAxes: [{
        ticks: {
          beginAtZero: true
        }
      }]
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="chart" height="80"></canvas>
© www.soinside.com 2019 - 2024. All rights reserved.