Cómo crear un gráfico de Sunburst con C++
Escenarios de uso posibles
Los gráficos de mapa de árbol son útiles para comparar proporciones dentro de la jerarquía, sin embargo, los gráficos de mapa de árbol no son excelentes para mostrar niveles jerárquicos entre las categorías más grandes y cada punto de datos. Un gráfico de arco es mucho mejor para mostrar eso. El gráfico de arco 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 arco sin datos jerárquicos (un nivel de categorías) se parece a un gráfico de dona. Sin embargo, un gráfico de arco con varios niveles de categorías muestra cómo los anillos exteriores se relacionan con los interiores. El gráfico de arco es más efectivo al mostrar cómo un anillo se divide en sus partes contribuyentes, mientras que otro tipo de gráfico jerárquico, el mapa de árbol, es ideal para comparar tamaños relativos.
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.
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.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Create an instance of Workbook
Workbook workbook(u"sunburst.xlsx");
// Access the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Add a Treemap chart
int32_t 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(u"Sunburst Chart");
// Add series data range
chart.GetNSeries().Add(u"D2:D16", true);
// Set category data (A2:A16 is incorrect, as hierarchical category)
chart.GetNSeries().SetCategoryData(u"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(u"out.xlsx");
std::cout << "Excel file saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}