ChartJS 如何使图表中的条形图和用户输入的一样?

2q5ifsrm  于 2022-11-07  发布在  Chart.js
关注(0)|答案(1)|浏览(146)

当我输入12时,我想使总条数为12。如何使变量标签的长度与我的输入相同???
这是我代码:

function updateChart() {
  let val = $("#num-input").val()
  let valNum = parseInt(val)
  console.log(valNum)

  let labels = []; // this length = bar total
  labels = $("#num-input").val()
  console.log(labels)

  const data = {
    labels: labels,
    datasets: [{
      backgroundColor: 'rgb(255, 99, 132)',
      borderColor: 'rgb(255, 99, 132)',
      data: [10, 20, 5, 2, 20, 30, 45], // = value for each bar
    }]
  };

  const config = {
    type: 'bar',
    data: data,
    options: {}
  };

  const myChart = new Chart(
    document.getElementById('myChart'),
    config
  );
}

这是我的结果

8aqjt8rx

8aqjt8rx1#

这是因为chart.js需要一个数组,因此您需要先创建一个包含12个标签的数组,而不是将数字12传递给标签数组:

function updateChart() {
  let val = $("#num-input").val()
  let valNum = parseInt(val)
  console.log(valNum)

  let labels = []; // this length = bar total

  for (let i = 0; i < $("#num-input").val(); i++) {
    labels.push(i) // or any other value you want your label to have
  }

  const data = {
    labels: labels,
    datasets: [{
      backgroundColor: 'rgb(255, 99, 132)',
      borderColor: 'rgb(255, 99, 132)',
      data: [10, 20, 5, 2, 20, 30, 45], // = value for each bar
    }]
  };

  const config = {
    type: 'bar',
    data: data,
    options: {}
  };

  const myChart = new Chart(
    document.getElementById('myChart'),
    config
  );
}

相关问题