Treemap 和 Sunburst 图表的数据点

在其他类型的 PowerPoint 图表中,有两种“层次结构”类型 - TreemapSunburst 图表(也称为 Sunburst 图、Sunburst 图示、径向图、径向图表或多级饼图)。这些图表显示了以树形结构组织的层次数据 - 从叶子到树枝的顶部。叶子由系列数据点定义,每个后续的嵌套分组级别由相应的类别定义。Aspose.Slides for C++ 允许在 C++ 中格式化 Sunburst 图表和 Treemap 的数据点。

下面是一个 Sunburst 图表,其中 Series1 列中的数据定义了叶子节点,而其他列定义了层次数据点:

todo:image_alt_text

让我们开始在演示中添加一个新的 Sunburst 图表:

auto pres = System::MakeObject<Presentation>();
auto chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::Sunburst, 100.0f, 100.0f, 450.0f, 400.0f);
// ...

如果需要格式化图表的数据点,我们应该使用以下内容:

IChartDataPointLevelsManagerIChartDataPointLevel 类 和 IChartDataPoint::get_DataPointLevels() 方法 提供访问 Treemap 和 Sunburst 图表数据点格式化的权限。 IChartDataPointLevelsManager 用于访问多级类别 - 它代表了 IChartDataPointLevel 对象的容器。 基本上,它是 IChartCategoryLevelsManager 的包装, 增加了数据点特定的属性。 IChartDataPointLevel 类有 两个方法:get_Format()get_Label(), 提供访问相应设置的权限。

显示数据点值

显示“叶子 4”数据点的值:

auto dataPoints = chart->get_ChartData()->get_Series()->idx_get(0)->get_DataPoints();
dataPoints->idx_get(3)->get_DataPointLevels()->idx_get(0)->get_Label()->get_DataLabelFormat()->set_ShowValue(true);

todo:image_alt_text

设置数据点标签和颜色

将“分支 1”数据标签设置为显示系列名称(“Series1”),而不是类别名称。然后将文本颜色设置为黄色:

auto branch1Label = dataPoints->idx_get(0)->get_DataPointLevels()->idx_get(2)->get_Label();
branch1Label->get_DataLabelFormat()->set_ShowCategoryName(false);
branch1Label->get_DataLabelFormat()->set_ShowSeriesName(true);

branch1Label->get_DataLabelFormat()->get_TextFormat()->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid);
branch1Label->get_DataLabelFormat()->get_TextFormat()->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Yellow());

todo:image_alt_text

设置数据点分支颜色

更改“茎 4”分支的颜色:

auto pres = System::MakeObject<Presentation>();
auto chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::Sunburst, 100.0f, 100.0f, 450.0f, 400.0f);
auto dataPoints = chart->get_ChartData()->get_Series()->idx_get(0)->get_DataPoints();

auto stem4branch = dataPoints->idx_get(9)->get_DataPointLevels()->idx_get(1);
stem4branch->get_Format()->get_Fill()->set_FillType(FillType::Solid);
stem4branch->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(Color::get_Red());

pres->Save(u"pres.pptx", SaveFormat::Pptx);

todo:image_alt_text