处理自定义图表,可以根据数据提供的值确定条形图或水平条形图中的条形粗细,而不是使用barThickness或barPercentage / categoryPercentage尽可能预设宽度。
目标:我可以创建一个水平条形图,其中包含一个x值和 a 的数据thickness,其中粗细成为该条相对于其他条的相对粗细。
例如,这段代码:
const data = {
labels: ['Northeast', 'Midwest', 'South', 'West'],
datasets: [
{
data: [
{ x: 10, thickness: 18 },
{ x: 20, thickness: 8 },
{ x: 13, thickness: 5 },
{ x: 4, thickness: 12 }
],
},
],
}
const context = document.querySelector('#myChart').getContext('2d')
const barChart = new Chart(context, {
type: 'horizontalBar',
data: data,
})
... 会使图表看起来像这样:
...而不是这个:
(这里不包括不相关的样式选项)。
主要特点:
- 刻度标签以条为中心
- 刻度间隔由条形厚度决定
- 条形间距均匀
如何才能做到这一点?
我知道我可以破解条形图控制器的绘图来为绘制的矩形指定明确的宽度,但这无法生成均匀间隔的条形。相反,它们在其固定宽度类别中具有可变宽度,这不是我想要的外观:
我的预感是我需要扩展一个新轴,但这似乎很复杂。
希望得到有关最佳方法的任何建议!谢谢!
类似于这个未回答的问题。在我的搜索中遇到了这些似乎很有希望但最终不是正确答案的答案:


