I finally worked it out.
It was because the title variable from php changed from text to number during a looping increment (for year). The canvasjs does not accept numerics as title objects it would seem. All I had to do in the end was to strval() the title variable before doing the json_encode.