2011-11-18 9 views
10

Ho un grafico a torta con così tante fette che è molto difficile leggerlo. È possibile ridurre il numero di fette, raggruppando il più piccolo in un solo "altri" o nascondendoli?highcharts: grafico a torta - riduci il numero di slice

+2

Non potresti semplicemente non passare così tanti articoli a Highcharts? Poiché controlli il JSON che invii, puoi aggregarlo tu stesso prima di inviarlo. – mynameiscoffey

+0

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

+0

Come OP, mi piacerebbe vedere questo comportamento costruito: si specifica il numero massimo di segmenti da mostrare, il nome della "categoria altri", nonché la colonna di ordinamento e l'ordine. Quindi highchart potrebbe aggregare automaticamente tutte le colonne rimanenti nella categoria other e un drill down con i dettagli quando viene fatto clic. Inoltre, durante l'esportazione, vedresti tutte le categorie (nessun raggruppamento lì). Fare tutto ciò manualmente è un dolore. –

risposta

6

No. Questo comportamento non è incorporato nei grafici ad alta velocità.

Il modo più semplice per ottenere ciò è modificando manualmente i dati passati al grafico. Cioè se si fa il raggruppamento in una categoria "Altri" prima di passare i dati e di rendere il grafico

0

Incollare alcune informazioni qui come un puntatore per le persone che vorrebbero fare quanto sopra con javascript al di fuori di Highcharts, come i fatto me stesso.

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 }); 
Problemi correlati