从中心开始,用颜色部分填充FLOT饼图切片

时间:2016-05-11 18:14:30

标签: javascript flot

任何人都知道这是否可行?

基本上我需要能够仅使用颜色部分遮蔽饼图切片,例如0-10的范围,其中0表示饼图中没有颜色,10表示完全着色。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

免责声明:我的另一个答案是关于饼图的图例和正确定位相当苛刻,但是当你无法修改插件代码时可以工作,所以这里是一个更清洁的第二版。)

默认方法无法实现这一点,但直接更改饼图插件则相对简单。复制插件(source,版本1.1)并对您的本地副本进行以下更改:

  1. function drawPie()中的第395行和第406行:
    slices[i].radius添加到drawSlice()次调用的参数中。
  2. function drawSlice()中的第423行:
    将函数的标题更改为

    function drawSlice(angle, color, fill, sliceRadius) {
    
  3. function drawSlice()中的第428行: 添加以下代码:

    if (!jQuery.isNumeric(sliceRadius)) {
        sliceRadius = radius;                    
    }
    else if (sliceRadius >= 0.0 && sliceRadius <= 1.0) {
        sliceRadius = radius * sliceRadius;                    
    }
    
  4. {44}中的第441行至第443行(在插入代码之前):
    function drawSlice()替换为radius

  5. 完成上述更改后,您可以为饼图中的每个数据点/切片定义sliceRadius属性。这遵循与一般radius属性相同的规则(如果radius在0和1之间,它将用作一般半径的百分比,否则它将用作像素值。)

    以下是fiddle,显示radius属性的不同值:

    radius