生成了多个相同数据标签的图例,但每个数据集只需要一个标签。
this.BarChartLabels = []
this.BarChartData = []
this.Service.getCount().subscribe(data => {
let len =data.length;
for(let i=0;i<data.length;i++) {
this.BarChartLabels.push(data[i].date) var color1=['red','blue','green']
var color=0
for(let j=0;j<data[i].Counters.length;j++)
{
const arr = Array(len).fill(0);
arr[i] = data[i].Counters[j].count;
this.BarChartData.push({label:data[i].Counters[j].Name, data: arr, backgroundColor:color})
color++;
}
}
})
这里我得到了一个多级数组,所以我用for循环来检索它。结果,我的图例多次获取相同的数据。有没有什么方法可以为图例生成一个数据。
图例有一个过滤器参数,您可以使用它来隐藏相同的标签:https://www.chartjs.org/docs/latest/configuration/legend.html#legend-标签配置
编辑:筛选出所有重复项的示例:https://jsfiddle.net/Leelenaleee/vto6z3g4/15/
options: {
legend: {
labels: {
filter: (legendItem,chartData) => {
return !(chartData.labels.indexOf(legendItem.text) < legendItem.index);
}
}
}
}