2012-10-17 42 views
1

我可以有一個條形圖限制酒吧數量的限制,比如gRaphael餅圖只接受10個行業,剩餘的「OTHER」少於總數的10%同樣的方式,只有10個酒吧的gRaphael條形圖和其餘的「其他」?gRaphael條形圖:限制酒吧數量和排序值

感謝, Mythyili

回答

1

這不是目前在g.bar類的選項,所以你可能需要更新的源代碼來實現這一目標。

看着他們在g.pie.js「其他」部分做了什麼,以後這裏就是我會建議:

  • 添加一個選項,被稱爲像「maxbars」的屬性陣列。當你通過這個選項時,這將是圖形上顯示的最大條數。如果maxbars = 10並且有10個以上的分段,則1到9將是唯一的,10將是第10個到最後的組合。
  • 由於他們如何處理values數組,我認爲最好的解決方案是在第一次訪問數組之前覆蓋該數組數組。在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個元素的總和。請注意,在這個簡單的循環中,我只考慮了每個值不是數組的情況。您需要檢查值[i] [j]並添加那些元素而不是值[i],這可能需要嵌套for循環或三元運算符。查看g.bar的其餘部分,看看這是如何在其他地方處理的。

  • 在他們繪製標籤代碼的一部分,你想在循環增加一個檢查像 如果(opts.maxbars & &(我== opts.maxbars - 1)){// 標籤與條「其它」 }

對不起,我沒有任何實際工作的代碼來實現這一點,但它會有點更多地參與,並採取一些試驗和錯誤。希望這可以指導你正確的方向。

相關問題