Dostosowanie punktów danych w wykresach Treemap i Sunburst na Androidzie

Wprowadzenie

Wśród innych typów wykresów PowerPoint istnieją dwa typy „hierarchiczne” – Treemap i wykres Sunburst (znany również jako Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph lub Multi Level Pie Chart). Te wykresy wyświetlają dane hierarchiczne zorganizowane jako drzewo – od liści do szczytu gałęzi. Liście są definiowane przez punkty danych serii, a każdy kolejny zagnieżdżony poziom grupowania jest definiowany przez odpowiednią kategorię. Aspose.Slides for Android via Java umożliwia formatowanie punktów danych wykresu Sunburst i Treemap w Javie.

Poniżej znajduje się wykres Sunburst, w którym dane w kolumnie Series1 definiują węzły liści, a pozostałe kolumny definiują punkty danych hierarchicznych:

todo:image_alt_text

Rozpocznijmy od dodania nowego wykresu Sunburst do prezentacji:

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();
}

Jeśli istnieje potrzeba formatowania punktów danych wykresu, powinniśmy użyć następujących:

IChartDataPointLevelsManager, IChartDataPointLevel klasy i IChartDataPoint.getDataPointLevels metoda zapewniają dostęp do formatowania punktów danych wykresów Treemap i Sunburst. IChartDataPointLevelsManager służy do uzyskiwania dostępu do kategorii wielopoziomowych – reprezentuje kontener obiektów IChartDataPointLevel. W zasadzie jest to wrapper dla IChartCategoryLevelsManager z właściwościami dodanymi specjalnie dla punktów danych. Klasa IChartDataPointLevel posiada dwie metody: getFormat i getDataLabel które zapewniają dostęp do odpowiednich ustawień.

Pokaż wartość punktu danych

Pokaż wartość punktu danych „Leaf 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

Ustaw etykietę i kolor punktu danych

Ustaw etykietę danych „Branch 1”, aby wyświetlała nazwę serii („Series1”) zamiast nazwy kategorii. Następnie ustaw kolor tekstu na żółty:

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

Ustaw kolor gałęzi punktu danych

Zmień kolor gałęzi „Steam 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

FAQ

Czy mogę zmienić kolejność (sortowanie) segmentów w wykresie Sunburst/Treemap?

Nie. PowerPoint sortuje segmenty automatycznie (zazwyczaj malejąco według wartości, zgodnie z ruchem wskazówek zegara). Aspose.Slides odzwierciedla to zachowanie: nie można zmienić kolejności bezpośrednio; należy to zrobić poprzez wstępne przetworzenie danych.

Jak motyw prezentacji wpływa na kolory segmentów i etykiet?

Kolory wykresu dziedziczą motyw/paleta prezentacji, chyba że wyraźnie ustawisz wypełnienia/czcionki. Aby uzyskać spójne wyniki, zastosuj stałe wypełnienia i formatowanie tekstu na odpowiednich poziomach.

Czy eksport do PDF/PNG zachowa niestandardowe kolory gałęzi i ustawienia etykiet?

Tak. Podczas eksportu prezentacji ustawienia wykresu (wypełnienia, etykiety) są zachowywane w formatach wyjściowych, ponieważ Aspose.Slides renderuje wykres z zastosowanym formatowaniem.

Czy mogę obliczyć rzeczywiste współrzędne etykiety/elementu w celu umieszczenia własnej nakładki na wykresie?

Tak. Po zweryfikowaniu układu wykresu dostępne są rzeczywiste wartości x i y dla elementów (na przykład dla DataLabel), co ułatwia precyzyjne pozycjonowanie nakładek.