树图和日晕图的数据点

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

这是一个日晕图,其中 Series1 列中的数据定义了叶子节点,而其他列定义了层次数据点:

todo:image_alt_text

让我们开始在演示文稿中添加一个新的日晕图:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);

    // ...
} finally {
    if (pres != null) pres.dispose();
}

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

IChartDataPointLevelsManagerIChartDataPointLevel 类 和 IChartDataPoint.getDataPointLevels 方法 提供访问以格式化树图和日晕图的数据点。 IChartDataPointLevelsManager 用于访问多层类别 - 它代表 IChartDataPointLevel 对象的容器。 基本上它是一个 IChartCategoryLevelsManager 的包装器,具有针对数据点添加的特定属性。 IChartDataPointLevel 类有两个方法:getFormatgetDataLabel,提供对相应设置的访问。

显示数据点值

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

IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);

todo:image_alt_text

设置数据点标签和颜色

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

IDataLabel branch1Label = dataPoints.get_Item(0).getDataPointLevels().get_Item(0).getLabel();
branch1Label.getDataLabelFormat().setShowCategoryName(false);
branch1Label.getDataLabelFormat().setShowSeriesName(true);

branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.YELLOW);

todo:image_alt_text

设置数据点分支颜色

更改“蒸汽 4”分支的颜色:

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);

    IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();

    IChartDataPointLevel stem4branch = dataPoints.get_Item(9).getDataPointLevels().get_Item(1);

    stem4branch.getFormat().getFill().setFillType(FillType.Solid);
    stem4branch.getFormat().getFill().getSolidFillColor().setColor(Color.RED);

    pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

todo:image_alt_text