Cómo crear un gráfico de anillo solar

Escenarios de uso posibles

Los gráficos de Treemap son buenos para comparar proporciones dentro de la jerarquía, sin embargo, los gráficos de Treemap no son ideales para mostrar niveles jerárquicos entre las categorías más grandes y cada punto de datos. Un gráfico de ráfaga solar es mucho mejor para mostrar eso. El gráfico de ráfaga solar es ideal para mostrar datos jerárquicos. Cada nivel de la jerarquía está representado por un anillo o círculo con el círculo más interno como la parte superior de la jerarquía. Un gráfico de ráfaga solar sin ningún dato jerárquico (un nivel de cateogorías) luce similar a un gráfico de rosquilla. Sin embargo, un gráfico de ráfaga solar con múltiples niveles de categorías muestra cómo los anillos exteriores se relacionan con los anillos interiores. El gráfico de ráfaga solar es más efectivo para mostrar cómo un anillo se divide en sus partes contribuyentes, mientras que otro tipo de gráfico jerárquico, el gráfico Treemap, es ideal para comparar tamaños relativos.

todo:image_alt_text

Gráfico de ráfaga solar

Después de ejecutar el código a continuación, verá el gráfico de ráfaga solar como se muestra a continuación.

todo:image_alt_text

Código de muestra

El siguiente código de muestra carga el archivo de Excel de muestra y genera el archivo de Excel de salida.

// Create an instance of Workbook
Workbook workbook = new Workbook("sunburst.xlsx");
// Access the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
// Add a SUNBURST chart
int pieIdx = worksheet.getCharts().add(ChartType.SUNBURST, 5, 6, 25, 12);
// Retrieve the Chart object
Chart chart = worksheet.getCharts().get(pieIdx);
// Set the legend can be showed
chart.setShowLegend(true);
// Set the chart title name
chart.getTitle().setText("Sunburst Chart");
// Add series data range
chart.getNSeries().add("D2:D16", true);
// Set category data(A2:A16 is incorrect,as hierarchical catogory)
chart.getNSeries().setCategoryData("A2:C16");
// Show the DataLabels with category names
chart.getNSeries().get(0).getDataLabels().setShowCategoryName(true);
// Fill the PlotArea area with nothing
chart.getPlotArea().getArea().getFillFormat().setFillType(FillType.NONE);
// Save the Excel file
workbook.save("out.xlsx");