【问题标题】:Prevent ordering in gRaphael pie chart防止在 gRaphael 饼图中排序
【发布时间】:2013-05-25 03:35:39
【问题描述】:

我正在尝试使用gRaphael 绘制两个饼图,如下所示:

var r = new Raphael(0, 0, '100%', '100%'); 

r.piechart(100,120,80,[60,40]);
r.piechart(300,120,80,[40,60]);

这会产生以下图片:

即使我传递给r.piechart 的参数顺序不同,这两个饼图也是相同的。有什么办法可以防止这种情况发生,以便其中一张图表的底部有 60% 的蓝色切片,而另一张则保持原样?

【问题讨论】:

    标签: javascript canvas raphael graphael


    【解决方案1】:

    Here is a fiddle。我不是 gRaphael 专家,所以可能有更好的方法。我将饼图函数(g.pie.js 的第 99 行)从

    values.sort(function (a, b) {
        return b.value - a.value;
    }); 
    

    if (opts.sort !== false) {
        values.sort(function (a, b) {
            return b.value - a.value;
        });
    }
    

    然后将您的代码更改为:

    r.piechart(100,120,80,[60,40], {sort: false});
    r.piechart(300,120,80,[40,60], {sort: false});
    

    【讨论】:

    • 但是请注意,如果您使用 MinPercent 或 MaxSlices,它们依赖于被排序的值以获得正确的功能。最好添加 代码,将其恢复为原始顺序:if (opts.sort == false) { values.sort(function(a, b) { return a.order - b.order; }); } 就在以others && values.splice... 开头的行之后。
    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多