我正在使用Chart.js来创建圆环图,但是遇到了问题,其中圆环上的笔划被画布对象切断了。画布上的填充/边距并没有为我解决问题。有什么想法发生了什么?
JSFiddle here
HTML
<canvas id="myChart" width="400" height="400"></canvas>
JS
var data = [{
value: 30,
color: "#F7464A"
}, {
value: 50,
color: "#E2EAE9"
}, {
value: 100,
color: "#D4CCC5"
}, {
value: 40,
color: "#949FB1"
}, {
value: 120,
color: "#4D5360"
}];
var options = {
animation: true,
segmentStrokeWidth : 5
};
var c = $('#myChart');
var ct = c.get(0).getContext('2d');
var ctx = document.getElementById("myChart").getContext("2d");
myNewChart = new Chart(ct).Doughnut(data, options);
答案 0 :(得分:4)
由于您要绘制的项目大于400像素,因此实际上是bug in ChartJS。 ChartJS 2.0.0的当前Alpha解决并修复了这个问题。在画布上绘制图表时,不会考虑segmentStrokeWidth
,这会导致它大于画布。
此版本的修复方法是将图表的outerRadius
减去笔画宽度的一半:
var strokeWidth = 5;
var options = {
animation: true,
segmentStrokeWidth : strokeWidth
};
...
myNewChart = new Chart(ct).Doughnut(data, options);
myNewChart.outerRadius -= (strokeWidth/2);