Chart.js帆布切断甜甜圈中风

时间:2015-09-08 20:32:53

标签: javascript css canvas charts chart.js

我正在使用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);

1 个答案:

答案 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);

Fiddle Example