Как создать диаграмму солнце
Возможные сценарии использования
Диаграммы-дерева хороши для сравнения пропорций в иерархии, однако они не очень хороши в показе иерархических уровней между крупными категориями и каждой точкой данных. Диаграмма-солнце намного лучше подходит для показа этого. Диаграмма-солнце идеально подходит для отображения иерархических данных. Каждый уровень иерархии представлен одним кольцом или кругом, где внутренний круг представляет верхнюю часть иерархии. Диаграмма-солнце без каких-либо иерархических данных (один уровень категорий) выглядит похоже на кольцевую диаграмму. Однако диаграмма-солнце с несколькими уровнями категорий показывает, как внешние кольца соотносятся с внутренними кольцами. Диаграмма-солнце наиболее эффективна в показе того, как одно кольцо разбивается на составляющие его части, в то время как другой тип иерархической диаграммы, диаграмма-дерева, идеально подходит для сравнения относительных размеров.
Диаграмма созвездия
После выполнения приведенного ниже кода вы увидите диаграмму созвездия, как показано ниже.
Образец кода
Приведенный ниже образец кода загружает образец файла Excel и генерирует выходной файл Excel.
// 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"); | |