Tri*_*e93 3 html javascript chart.js
我试图隐藏项目的图例标题(如果它的值为零)。这里存在类似的问题,但没有解决我的问题。
下面是我的源代码:
<script>
var ctx = document.getElementById('beratungsfelderChart');
var myDoughnutChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Group A', 'Group B', 'Group C', 'Group D', 'Group E'],
datasets: [{
label: '# of Votes',
data: [0, 3, 3, 5, 2],
backgroundColor: [
'#172b4dD9',
'#2dce89D9',
'#231F20D9',
'#192d35D9',
'#3B6058D9'
]
}]
},
options: {
legend: {
labels: {
//filter: function(item, chart, context) {
// return !item.text.includes('Test');
//}
filter: function(item, context) {
return !context.dataset.data[context.dataIndex] == 0;
}
}
},
axis: {
scales: {
yAxes: [{
display: false
}],
xAes: [{
ticks: {
display: false
}
}]
}
},
plugins: {
datalabels: {
display: function(context) {
return context.dataset.data[context.dataIndex] > 1;
}
}
}
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我尝试了一些可能的解决方案,但不幸的是,到目前为止,没有任何结果。
1. 选项 -> 图例 -> 标签
2. 选项 -> 插件 -> 数据标签
我希望有人能以某种方式帮助我。
最好的,纳德
您应该legend.labels.filter按如下方式使用。
legend: {
labels: {
filter: (legendItem, data) => data.datasets[0].data[legendItem.index] != 0
}
}
Run Code Online (Sandbox Code Playgroud)
legend: {
labels: {
filter: (legendItem, data) => data.datasets[0].data[legendItem.index] != 0
}
}
Run Code Online (Sandbox Code Playgroud)
new Chart(document.getElementById('beratungsfelderChart'), {
type: 'doughnut',
data: {
labels: ['Group A', 'Group B', 'Group C', 'Group D', 'Group E'],
datasets: [{
label: '# of Votes',
data: [0, 3, 3, 5, 2],
backgroundColor: [
'#172b4dD9',
'#2dce89D9',
'#231F20D9',
'#192d35D9',
'#3B6058D9'
]
}]
},
options: {
legend: {
labels: {
filter: (legendItem, data) => data.datasets[0].data[legendItem.index] != 0
}
},
axis: {
scales: {
yAxes: [{
display: false
}],
xAes: [{
ticks: {
display: false
}
}]
}
}
}
});Run Code Online (Sandbox Code Playgroud)