ChartJs条形图-将条形保持在左侧,而不是在宽度上均匀分布

Sti*_*n V 6 bar-chart chart.js

我正在使用ChartJs 2.7.2绘制一个简单的条形图。在我的应用程序中,条形的数量在5到15之间变化。默认情况下,条形在图表的整个宽度上平均分布。但是,我希望这些条具有固定的宽度/左对齐(因此,当只有5条时,它们不会占用整个宽度,而是保持左对齐)。请查看下面的屏幕截图以进行澄清。

在此处输入图片说明

she*_*lak 5

您可以提供一个labels用空字符串填充到所需长度的数组,例如 15。

这将确保轴上的类别数量一致,从而确保即使条形较少(Fiddle),条形也将保持相同的宽度并左对齐。

(如果您愿意,也可以用 ' 填充data数组0以保持一致性,但这不是必需的 -labels数组决定轴的外观。)

var data = [12, 19, 3, 5, 2];
var labels = ["a", "b", "c", "d", "e"];

for (var i = labels.length; i < 15; i++) {
  labels.push("");
}

var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
  type: 'bar',
  data: {
    labels: labels,
    datasets: [{
      label: 'Count',
      data: data
    }]
  },
  options: {
    scales: {
      yAxes: [{
        ticks: {
          beginAtZero: true
        }
      }]
    }
  } 
});
Run Code Online (Sandbox Code Playgroud)

  • 这似乎确实是可行的方法 - 有点奇怪 ChartJs 不会抱怨丢失数据(标签和数据数组的大小不再相同),但似乎有效。 (2认同)