Chart.js,增加图表宽度时增加条形及其标签之间的空间

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

我目前正在测试Chart.js的ChartType bar。>

这就是我定义测试画布的方式:

<div class="bar-chart">
  <canvas
    baseChart
    [datasets]="[{label: 'Testuser1', data: [0, 15, 0, 0]}, {label: 'Testuser2', data: [10, 0, 10, 0]}, {label: 'Testuser3', data: [15, 0, 0, 12]}]"
    [labels]="['Junior Softwaredeveloper', 'Senior Softwaredeveloper', 'Designer']" [chartType]="barChartType"
    [options]="options">
  </canvas>
</div>

我正在使用的选项:

export const CHARTOPTIONS_BAR = {
  legend: {display: false},
  animation: null,
  tooltips: {
    callbacks: {
      label: (tooltipItems, data) => data.datasets[tooltipItems.datasetIndex].label + ': ' + data.datasets[tooltipItems.datasetIndex].data[0] + 'h'
    },
  },
  plugins: {
    colorschemes: {
      scheme: 'tableau.SuperfishelStone10',
      override: true
    }
  },
  scales: {
    xAxes: [{
      stacked: true,
    }],
    yAxes: [{
      stacked: true,
      scaleLabel: {
        display: true,
        labelString: 'Stunden',
        fontSize: 18
      }
    }]
  },
  responsive: true
};

父类仅定义画布响应地适应的宽度和高度:

.bar-chart {
  width: 400px;
  height: 200px;
}

这就是它的外观:

enter image description here

我想增加图表的宽度,所以有足够的空间用于(水平)插入Junior Softwaredeveloper之类的较长文本。

但是如果我将宽度从400px增加到800px,我会得到这个:

enter image description here

因此,它会放大所有内容的纵横比,从而导致图像模糊。有没有一种方法可以增加图表的宽度,从而导致条形图之间的间隔增加,但保持文本,条形图等的长宽比相同?]

我基本上只是希望一切都如上图所示。只需将宽度加倍,而不会影响元素的长宽比。将宽度加倍应该会使条形图及其标签之间的距离增加一倍,这将有助于我水平地放置较长的文本。

我目前正在测试ChartType表格Chart.js。那就是我如何定义测试画布:

]]]]

为了避免模糊效果对增加的图表,您可以定义以下选项。

maintainAspectRatio: false

在各个数据集上定义categoryPercentage决定了每个类别可能占用的空间。这样,您将更改条形之间的间距。

{ 
  categoryPercentage: categoryPct,
  label: 'Testuser1', 
  data: [0, 15, 0, 0]
} 

[如有必要,您可能还想更改刻度旋转。

xAxes: [{
  stacked: true,
  ticks: {
    minRotation: 20
  }
}],

请参阅我的StackBlitz

angular chart.js
1个回答
0
投票

为了避免模糊效果对增加的图表,您可以定义以下选项。

maintainAspectRatio: false
© www.soinside.com 2019 - 2024. All rights reserved.