javascript - 是否可以将重复的标签(及其数据)合并到 Chart Js 中的一列中?
问题描述
例如,如果我有用于标签的数组 ['05/Feb/2019', '05/Feb/2019', '05/Feb/2019', '01/Feb/2019'] 和数组 ['2' , '5', '7', '4'] 为它们各自的值。
是否可以仅显示所有元素 '05/Feb/2019' 的一列,并在此列中总结它们的值?
图表 JS 代码
myChart = new Chart(document.getElementById("canvas"),{
"type":temp.type,
"data":{
"labels":column_a,
"datasets":[{
"label":label_b,
"data":column_b,
"spanGaps": true,
"fill":false,//true for charts like radar and polar area
"backgroundColor":["rgba(255, 99, 132, 0.4)","rgba(255, 159, 64, 0.4)","rgba(255, 205, 86, 0.4)","rgba(75, 192, 192, 0.4)","rgba(54, 162, 235, 0.4)","rgba(153, 102, 255, 0.4)","rgba(201, 203, 207, 0.4)"],
"borderWidth":1
}
]},
"options":{
tooltips: {
callbacks: {
label: (tooltipItem, myChart) => {
const realValue = myChart.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
//const customValue = realValue.toFixed(2).replace(".", ",") + '%';
const customValue = realValue.toFixed(2).replace(".", ",");
const label = myChart.labels[tooltipItem.index] + ':';
return label + customValue;
}
}
},
"scales":{
"yAxes":[{
"gridLines":{display:false},
"ticks":{
"suggestedMin":0,
"max":max_value_1
}}]}
}});
window.myChart = myChart
解决方案
你可以为此使用reduce。愿这对你有帮助!
var label = ['05/Feb/2019', '05/Feb/2019', '05/Feb/2019', '01/Feb/2019'];
var value = ['2', '5', '7', '4'];
var obj = label.reduce(function(a, b, i) {
if(!a.hasOwnProperty(b)) {
a[b] = 0;
}
console.log(a);
a[b] += Number(value[i]);
return a;
},{});
var lab = Object.keys(obj);
var val = Object.values(obj);
推荐阅读
- linux - 如何使用位于 azure webapp 中的 .sh 文件将多个文件从本地存储上传到 azure blob 存储
- go - 如何使用方法编写延迟块返回错误
- python - 一个物体“在冥界”是什么意思?
- ios - 将 UIBezierPath 添加到 UILabel 大小后不会根据设备更改?
- amazon-cloudformation - cloudformation - 多个 lambda 别名和版本的 apigateway 阶段
- string - bufio 扫描仪和处理新线路
- html - 将一个表头分成两行
- android - Kommunicate 在使用发布版本登录时产生 IllegalArgumentException,但在调试版本中工作正常
- ms-access - Access: Calculating weighted numeric grades from letter grades for multiple fields
- react-native - 问题:如何设计适用于 react-native 中所有设备的标头