我在Chartjs中构建了一个配置完全相同的折线图和条形图,但由于某种原因,两个图表的x刻度不同,如下图所示。
两个图表的配置相同,唯一的区别是图表类型:
function getOptions() {
return {
animation: false,
responsive: true,
maintainAspectRatio: false,
plugins: {
tooltip: false,
legend: {
display: false
},
title: {
display: false
}
},
elements: {
line: {
fill: true
},
point: {
radius: 0
}
},
scales: {
x: {
type: "time",
time: {
displayFormats: {
second: 'HH:mm:ss',
minute: 'HH:mm',
hour: 'HH'
},
unit: 'minute',
stepSize: 1,
min: '00:00:00',
max: '23:59:59',
},
grid: {
display: true,
drawBorder: true,
drawOnChartArea: true,
drawTicks: true,
color: function(context) {
return '#fff';
},
}
},
y: {
beginAtZero: true,
grid: {
display: true,
drawBorder: false,
color: function(context) {
return '#fff';
},
},
}
}
};
}
我注意到,如果我将“stepSize”设置为“seconds”,x轴会完全对齐。这可能是因为插入图表的数据是second-data。
1条答案
按热度按时间i2byvkas1#
这是因为条形图将x轴刻度上的
offset
属性设置为true。https://www.chartjs.org/docs/3.8.0/axes/cartesian/category.html#common-options-to-all-cartesian-axes
因此,要对齐它们,您必须将条形图的值设置为false,或将折线图的值设置为true