I currently am using a line chart with chart.js, and have a label set that looks like this ["January 2015", "February 2015", "March 2015", "April 2015", "May 2015", "June 2015"]
. I want the relevant label to show up in the tooltip for the chart, but only want every alternating label to show up on the x axis of the chart to prevent crowding. Is there a way I can achieve this ?
I am currently replacing every second value from my array with "", but while that removes the crowding from my x axis, it does not meet my requirement to show the label in the tooltip.
This was one of the trickiest things that I deal with while using ChartJs.
I'm going to share my solution: I just played with the chart options. First I will define some properties for my xAxe. Note that I'm formatting the label using the callback:
To format the tooltip title I'm going to use callbacks options for the tooltips:
Using the chart options like that, I'm able to show different content for the x-axis labels and the corresponding tooltip titles:
enter image description here
You can find the full sample here.
Hope this helps.
Just extend the line chart and replace the xLabels you don't want after your initialization
Fiddle - http://jsfiddle.net/ttz5t3dx/
For anyone looking to achieve this on Chart JS V2 the following will work:
Then pass the options variable as usual into a:
To extend on potatopeelings answer, we can do:
to limit the number of labels (in this case 10) so your labels will never be crowded no matter how many data points you have.
At Chart Options, under xAxes you can specify the maxTickLimit property to whatever you like:
Fiddle : https://jsfiddle.net/p63z7zys/1/