我可以有一个条形图,限制条形图,例如 gRaphael 饼图只接受 10 个扇区,其余的为“其他”,不到总数的 10%。同样的方式,gRaphael 条形图只有 10 个条形,剩下的到“其他”?
谢谢, Mythyili
我可以有一个条形图,限制条形图,例如 gRaphael 饼图只接受 10 个扇区,其余的为“其他”,不到总数的 10%。同样的方式,gRaphael 条形图只有 10 个条形,剩下的到“其他”?
谢谢, Mythyili
这目前不是 g.bar 类中的选项,因此您可能必须更新源代码才能实现此目的。
在查看了他们对 g.pie.js 中的“其他”部分做了什么之后,我会推荐以下内容:
由于他们处理值数组的方式,我认为最好的解决方案是在第一次访问该值数组之前覆盖它。在 vbarchart 和 hbarchart 中,在图表元素初始化之后,您应该添加一个看起来像这样的 for 循环:
if (values.length > opts.maxbars) {
for (var i = maxbars; i < values.length; i++) {
values[maxbars-1] += values[i];
values[i] = null;
}
}
这是将第 10 个(例如)元素之后的所有值添加到第 10 个元素并清除数组中的剩余插槽。现在您拥有的是一个包含 10 个元素的数组,其中第 10 个是第 10 个以上元素的总和。请注意,在这个简单的循环中,我只考虑了每个值都不是数组的情况。您需要检查 values[i][j] 并添加这些元素而不是 values[i],这可能需要嵌套的 for 循环或三元运算符。查看 g.bar 的其余部分,看看其他地方是如何处理的。
抱歉,我没有任何实际的工作代码来实现这一点,但它会涉及更多,并且需要一些试验和错误。希望这能为您指明正确的方向。