我想将pie
放在chart
的左上角,但left
属性不是
另一方面,工作top
正在发挥作用。
CODE:
$(function () {
var data = [
{ label: "Read", data: 50, color: '#614E43' },
{ label: "Unread", data: 150, color: '#F5912D' }];
$.plot($("#star"), data,
{
series: {
pie: {
radius: 0.2,
innerRadius: 0.125,
show: true,
stroke: {
width: 0.1,
color: '#808080'
},
offset: {
top: -70,
left: -30
}
}
}
});
});
答案 0 :(得分:3)
问题在于setupPie()
功能。我相信这是一个错误。
即使实际半径较小,饼图也不允许左侧位置低于最大半径。
http://flot.googlecode.com/svn/trunk/jquery.flot.pie.js @ line 204
if (centerLeft<maxRadius)
centerLeft = maxRadius;
else if (centerLeft>canvas.width-maxRadius)
centerLeft = canvas.width-maxRadius;
如果设置了相对半径,则不应检查左边的最大宽度。
相反,应该有:
//calculate the radius the same way drawPie() does
var radius = options.series.pie.radius;
if (options.series.pie.radius < 1)
radius *= maxRadius;
//and compare to that value
if (centerLeft < radius)
centerLeft = radius;
else if (centerLeft > canvas.width-radius)
centerLeft = canvas.width-radius;
我已经分配了回购并尝试了我的代码,似乎已经完成了工作。
我的JSFiddle。
答案 1 :(得分:2)
正如@MasterAM正确指出的那样,这个错误就在于centerLeft被剪裁的方式。一个稍微好一点的解决方案是简单地将它移动到width ==“auto”的检查中,因为剪切仅适用于那种情况。
请注意,您在code.google.com上使用的Flot版本已经过时了;我们刚才搬到了Github。我已经把修复程序推给了主人,所以如果你切换到GH中的最新版本,你将会全部设定。