Flot饼图中的偏移量不起作用

时间:2013-09-14 20:01:47

标签: jquery jquery-plugins charts flot pie-chart

我想将pie放在chart的左上角,但left属性不是 另一方面,工作top正在发挥作用。

My code - Jsfiddle

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
            }
          }
        }
      });
});

2 个答案:

答案 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中的最新版本,你将会全部设定。