With help from this article https://github.com/morrisjs/morris.js/issues/346
This is about adding Legends to Morris charts. Though Morris chart shows legend on hovering on the graphs, but I wanted to show a legend permanently on one corner of the chart area.
Below are the codes. It is mostly plug and play code
The div in which the chart will be displayed
<div class="box-body chart-responsive">
<div id="visitor_legend" class="bar-chart-legend"></div> <!-- the legend area -->
<div class="chart" id="bar-chart" style="height: 300px;"></div> <!-- the chart area -->
</div>
The CSS
<style>
.bar-chart-legend {
display: inline-block;
right: 25px;
position: absolute;
top: 8px;
font-size: 10px;
}
.bar-chart-legend .legend-item {
display: block;
}
.bar-chart-legend .legend-color {
width: 12px;
height: 12px;
margin: 3px 5px;
display: inline-block;
}
</style>
The JS code
// Legend for Bar chart
bar.options.labels.forEach(function(label, i) {
var legendItem = $('<span class="legend-item"></span>').text( label).prepend('<span class="legend-color"> </span>');
legendItem.find('span').css('backgroundColor', bar.options.barColors[i]);
$('#visitor_legend').append(legendItem) // ID pf the legend div declared above
});
Morris charts documentation https://morrisjs.github.io/morris.js/lines.html