【发布时间】:2019-07-10 01:00:04
【问题描述】:
我有一个堆叠的水平条形图列表,我希望它们都具有相同的宽度。
每个画布的宽度相同,每个图表使用相同的配置(当然,使用不同的数据集)。
我测试了很多不同的配置选项,从 barPercentage 到 categoryPercentage,再到在 Y 轴上设置 fullWidth。
Here is a JSFiddle showing the same issue.
我错过了什么?
this.chartConfig = {
type: 'horizontalBar',
data: {
labels: this.labels,
datasets: [
{
backgroundColor: this.colors,
data: this.data,
},
highlight_dataset,
],
},
options: {
responsive: true,
title: { display: false },
legend: { display: false },
layout: {
padding: {
left: 0,
right: 0,
top: 0,
bottom: 0,
},
},
scales: {
xAxes: [
{
display: false,
stacked: true,
},
],
yAxes: [
{
display: false,
stacked: true,
beforeFit: (scaleInstance: any) => {
scaleInstance.fullWidth = true;
},
},
],
},
events: ['mousemove'],
onHover: (event: any, chartElement: any) => {
event.target.style.cursor = chartElement && chartElement[0] ? 'pointer' : 'default';
},
tooltips: {
filter: (tooltipItem: any) => {
return tooltipItem.datasetIndex === 0;
},
},
},
};
【问题讨论】:
-
添加最小的完整和可验证的例子。
-
@VitaliyTerziev 我会举一个例子。
-
@VitaliyTerziev 我已经用 JSFiddle 的链接更新了答案。
-
对未来开发者的快速提醒:从 chart.js v3.0 开始,Horizontal Bar 配置更改为
chartConfig = { type: 'bar', options: { indexAxis: 'y' } };跨度>
标签: javascript chart.js