Chart.js纵横比/强制高度

Ale*_*ble 2 height canvas chart.js

我正在尝试使用chart.js来创建缩略图,这些缩略图将链接到包含完整图表的页面.链接页面上的完整图表看起来不错,但对于缩略图我无法正确调整大小.画布覆盖右侧区域,但图形不会垂直填充.

在此输入图像描述

var data = {
    labels: ['','','','','','','','','',''],
    datasets: [{
        data:[22,25,23,24,25,22,25,23,24,25],
            backgroundColor: "rgba(54, 255, 170, 0.4)",
            borderColor: "rgba(54, 255, 170, 1)",
            orderWidth: 1,
    }]
};
var options = {
    tooltips: false,
    legend: {
        display:false
    },
    scales: {
        yAxes: [{
            display:false,
            ticks: {
                beginAtZero:true
            }
        }],
        xAxes: [{
            gridLines: {
                color: "rgba(0, 0, 0, 0)",
            }
        }]
    }
};

new Chart($("#chart-"+this.model.id), {
    type: 'bar',
    data: data,
    options: options        
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试过调整画布的最小高度,但这会导致条纹模糊.有什么方法可以调整条的高度占据整个画布?

小智 9

尝试设置以下选项:

options: {
  responsive: true,
  maintainAspectRatio: false
}
Run Code Online (Sandbox Code Playgroud)

如果将maintainAspectRatio设置为true,则将自动计算高度.


Syl*_*are 8

实际上,在Chart.js 3.2.1中要更新纵横比以向您的方案添加更多高度,您可以使用以下aspectRatio选项:

options: {          
   aspectRatio: 1, 
}
Run Code Online (Sandbox Code Playgroud)

因此根据文档:

画布长宽比(即宽度/高度,值为 1 表示方形画布)。请注意,如果高度被明确定义为属性或通过样式,则此选项将被忽略。

您可以将其设置为:

  • 1让它成为正方形
  • 0.5高是宽的两倍
  • 2宽是高的两倍