ChartJS Javascript-如何绘制具有未知数据集大小的堆叠条形直方图
我想用ChartJS绘制一个堆叠的条形柱状图。 我看到了很多代码,我知道怎么做 就我而言,问题如下: 比如说,我有30个日期对应于标签(或轴) 然后,对于每个日期,我可能有一个或多个显示特定数据的值 例如:日期1-->[1,2],日期2-->[0.5],日期3-->[2,4,6,8]等等 如何不知道数据集的大小会有所不同 到目前为止,我做了如下工作:ChartJS Javascript-如何绘制具有未知数据集大小的堆叠条形直方图,javascript,plot,histogram,chatjs,Javascript,Plot,Histogram,Chatjs,我想用ChartJS绘制一个堆叠的条形柱状图。 我看到了很多代码,我知道怎么做 就我而言,问题如下: 比如说,我有30个日期对应于标签(或轴) 然后,对于每个日期,我可能有一个或多个显示特定数据的值 例如:日期1-->[1,2],日期2-->[0.5],日期3-->[2,4,6,8]等等 如何不知道数据集的大小会有所不同 到目前为止,我做了如下工作: var chartdata = { labels: [], datasets: [{ data: [] }
var chartdata = {
labels: [],
datasets: [{
data: []
}, {
data: []
}]
};
var canva_id = "#" + canvaID
var ctx = $(canva_id);
var options = {
maintainAspectRatio: true,
tooltips: {
mode: 'index',
intersect: false
},
responsive: true,
scales: {
xAxes: [{
stacked: true,
scaleLabel: {
display: true,
labelString: 'Date'
},
gridLines: {
display: false
}
}],
yAxes: [{
stacked: true,
ticks: {
beginAtZero: true,
stepSize: 1
},
gridLines: {
display: false
},
scaleLabel: {
display: true,
labelString: 'Nb height'
},
}]
},
legend: {
display: false
},
title: {
display: true,
text: ''
}
}
var chartInstance = new Chart(ctx, {
type: 'bar',
data: chartdata,
options: options
});
[...]
var color = Array("#6ec72e", "#A77A2F", "#BF1515", "#4C4CAD", "#993366", "#401010");
//Dict contain the date as a key and the array of data value as a value
for (const [key, value] of Object.entries(dict)) {
chartInstance.data.labels[key] = value["date"];
chartInstance.update();
var count = 0;
// create a new dataset with empty values
var newDataset = {
data: []
};
chartInstance.data.datasets.push(newDataset);
for (let v = 0; v < value["height"].length; v++) {
chartInstance.data.datasets[key].backgroundColor = color[v];
chartInstance.data.datasets[key].data[v] = value["height"][v];
}
// Finally, make sure you update your chart, to get the result
chartInstance.update();
}
var chartdata={
标签:[],
数据集:[{
数据:[]
}, {
数据:[]
}]
};
var canva_id=“#”+canvaID
var ctx=$(canva_id);
变量选项={
维护Aspectratio:是的,
工具提示:{
模式:“索引”,
交集:错
},
回答:是的,
比例:{
xAxes:[{
对,,
scaleLabel:{
显示:对,
标签字符串:“日期”
},
网格线:{
显示:假
}
}],
雅克斯:[{
对,,
滴答声:{
贝吉纳泽罗:是的,
步长:1
},
网格线:{
显示:假
},
scaleLabel:{
显示:对,
标签字符串:“Nb高度”
},
}]
},
图例:{
显示:假
},
标题:{
显示:对,
文本:“”
}
}
var chartInstance=新图表(ctx{
类型:'bar',
数据:图表数据,
选项:选项
});
[...]
变量颜色=数组(“6ec72e”、“A77A2F”、“BF1515”、“4CAD”、“993366”、“401010”);
//Dict包含日期作为键,数据值数组作为值
for(对象项的常量[键,值](dict)){
chartInstance.data.labels[key]=值[“date”];
update();
var计数=0;
//创建具有空值的新数据集
var newDataset={
数据:[]
};
chartInstance.data.datasets.push(newDataset);
对于(设v=0;v
请问有什么帮助吗
谢谢