我试图在Chart.js中创建一个带有组的堆叠图,但我以重复的标签结束。该图应该显示两个不同的堆叠集(让我们想象一下狗和猫的数量),按年份分组。Y轴代表数量,X轴代表月份。
理想情况下,标签应该是类型和年份,比如:dogs
、cats
、2022
、2023
我不知道是我的数据集出了问题,还是我必须操作标签。我试过根据documentation使用generateLabels
和filter
,但没有成功。
重要的是要注意堆栈和组是动态的,因此具有某种硬编码值将不起作用。
这会导致每年的类型(狗、猫)标签重复。有关数据和结果,请参见代码片段:
const data = {
"labels": [
"January",
"February",
"March"
],
"datasets": [{
"label": "dogs",
"data": [
12,
6,
2
],
"stack": "2022"
},
{
"label": "dogs",
"data": [
2,
20,
5
],
"stack": "2023"
},
{
"label": "cats",
"data": [
2,
5,
7
],
"stack": "2023"
}
]
}
const config = {
type: 'bar',
data: data,
options: {
responsive: true,
interaction: {
intersect: false,
},
scales: {
x: {
stacked: true,
},
y: {
stacked: true,
}
}
}
};
new Chart(
document.getElementById('chart'),
config
);
个字符
是否有方法以不同的方式构建数据集以避免重复标签?如果没有,我如何利用filter
或generateLabels
?如果可能,可用的标签应该是:dogs
,cats
,2022
,2023
谢谢你,谢谢
1条答案
按热度按时间7lrncoxx1#
是的,有一个解决方案,你可以尝试它希望它有帮助。
确保图表中的每个数据集代表一个堆栈(例如,狗或猫)。每个数据集需要每个月的数据,并且您应该相应地标记它们。您需要配置xAxis以堆叠条形图,并根据您的数量缩放配置yAxis。
个字符