1π
β
It might be easier to wrap the canvas in a div/span/something and set the size there. As you have set responsive: true this means that chart.js tries to fill the parent on resize and it does this by setting the canvas height and width.
https://jsfiddle.net/zpvfph9m/1/
<div style="width:50%">
<canvas id="fisheye" width="400" height="400"></canvas>
</div>
Would this work for you?
Source:stackexchange.com