Show/Hide chart by click custom legend
See original GitHub issueHello! Thanks for this very cool library! My question is how it is possible to repeat functionality for show/hide chart for custom legend? Yes, this functionality working for charts by default. But I have to change default legend to custom and lost show/hide function.
I made a default legend hidden and generate my own like this:
var weightChartOptions = {
responsive: true,
legendCallback: function(chart) {
var legendHtml = [];
legendHtml.push('<table>');
legendHtml.push('<tr>');
for (var i=0; i<chart.data.datasets.length; i++) {
legendHtml.push('<td><div class="chart-legend" style="background-color:' + chart.data.datasets[i].backgroundColor +'"></div></ td>');
if (chart.data.datasets[i].label) {
legendHtml.push('<td class="chart-legend-label-text">' + chart.data.datasets[i].label + '</td>');
}
}
legendHtml.push('</tr>');
legendHtml.push('</table>');
return legendHtml.join("");
},
legend: {
display: false
}
};
var ctx = document.getElementById("weightChart").getContext("2d");
var weightChart = new Chart(ctx, {
type: 'line',
data: weightChartData,
options: weightChartOptions
});
document.getElementById("weightChartLegend").innerHTML = weightChart.generateLegend();
How I can keep this custom legend and add show/hide function? Thanks.
Issue Analytics
- State:
- Created 7 years ago
- Reactions:11
- Comments:12 (5 by maintainers)
Top Results From Across the Web
Chart js show/hide legend during runtime via buttonClick
js) by clicking a button. I tried this so far: The following code changes the value of scatterChart.legend.options.display but after executing ...
Read more >How to Create Custom Legend for Doughnut Chart ... - YouTube
How to Create Custom Legend for Doughnut Chart that Show Hide Datasets in Chart JSIn this video we will explore how to create...
Read more >Chart js show/hide legend - Javascript
<html lang="en"> <head> <title>Chart.js - Hide/Show Legend From Button Click</title> </head> <body translate="no"> <div style="width:45%;"> <canvas ...
Read more >Show / Hide series on legend click
That said, you can create a custom legend and handle the onclick event of its elements to show/hide the corresponding series.
Read more >Hide Unhide Data Series in Chart on Legend Click
How to hide/unhide data series on click of legend items – in case of multi series chart. CanvasJS supports setting the visibility of...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Git it! Thank you very much!
The most important parts are:
onClick
function call for each legend labeland function
Also make
chart
instance ofWindow
addingwindow.
before:I’m actually facing a similar issue. I"ve make a custom legend component and I’m able to show/hide using the above codes. However, this only works for bar chart. It raise the following exception when using it with donut chart:
TypeError: Cannot read property '_meta' of undefined at Chart.getDatasetMeta (core.controller.js:656)
Have anyone faced a similar issue please?