2011-11-18 66 views
10

我有一個餅圖,有很多切片,很難讀取它。是否有可能通過將最小的片段分組到一個名爲「其他」的片段中來減少切片的數量,或者將它們隱藏起來?highcharts:餅圖 - 減少切片數

+2

難道你不能把這麼多物品傳遞給Highcharts嗎?既然你控制了你發送的JSON,你可以在發送前自己聚合它們。 – mynameiscoffey

+0

相關:http://stackoverflow.com/questions/28883606/group-smaller-slices-in-pie-charts-to-improve-readability –

+0

作爲OP,我很想看到這種行爲建立了它:你會指定要顯示的最大片數,「其他類別」的名稱以及排序列和順序。然後,highchart可以自動將所有剩餘的列彙總到其他類別中,並在單擊時詳細查看詳細信息。此外,在導出時,您會看到所有類別(不在此處分組)。手動做所有這些都是一種痛苦。 –

回答

6

不會。此行爲沒有內置到高樓層。

實現此目的的最簡單方法是手動更改傳遞給圖表的數據。也就是說,如果您在將數據傳遞給「其他」類別之前將其分組爲其他類別

0

將此處的某些信息粘貼爲指向希望在Highcharts之外使用javascript完成上述操作的人員的指針,例如我做了我自己。

for(i=0; i<dataJSON.finished.length; i++) { 
    //console.info(i); 
    if(dataJSON.finished[i].name !== '_all_' && dataJSON.finished[i].name !== 'Anders')   { 
     tempValue=0; 
     for(j=0; j<dataJSON.finished[i].data.length; j++) { tempValue += dataJSON.finished[i].data[j]; } 
     if(tempValue/totalValue > 0.02) { 
     pieData.push({ name:dataJSON.finished[i].name, y:tempValue }); 
     } else andersValue += tempValue; 
    } 
    } 

    //console.info(pieData); 
    pieData.sort(function(a,b) {return (a.y > b.y) ? -1 : ((b.y > a.y) ? 1 : 0);}); 
    pieData.push({ name: "Overig", y: andersValue });