Dostosuj punkty danych w wykresach Treemap i Sunburst przy użyciu C++
Wprowadzenie
Wśród innych typów wykresów PowerPoint istnieją dwa typy „hierarchiczne” – Treemap i Sunburst (chart (również znany jako Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph lub Multi Level Pie Chart)). Te wykresy wyświetlają hierarchiczne dane 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 C++ umożliwia formatowanie punktów danych wykresu Sunburst i Treemap w C++.
Poniżej znajduje się wykres Sunburst, gdzie dane w kolumnie Series1 definiują węzły liści, a pozostałe kolumny definiują hierarchiczne punkty danych:
Rozpocznijmy od dodania nowego wykresu Sunburst do prezentacji:
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);
// ...
Zobacz także
IChartDataPointLevelsManager, IChartDataPointLevel klasy oraz IChartDataPoint::get_DataPointLevels() metoda udostępniają 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 opakowanie dla IChartCategoryLevelsManager z właściwościami dodanymi specyficznie dla punktów danych.
Klasa IChartDataPointLevel posiada dwie metody: get_Format() i get_Label(), które zapewniają dostęp do odpowiednich ustawień.
Pokaż wartość punktu danych
Pokaż wartość punktu danych „Leaf 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);
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:
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());
Ustaw kolor gałęzi punktu danych
Zmień kolor gałęzi „Stem 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);
FAQ
Czy mogę zmienić kolejność (sortowanie) segmentów w wykresie Sunburst/Treemap?
Nie. PowerPoint sortuje segmenty automatycznie (zazwyczaj według wartości malejących, 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 lub czcionki. Aby uzyskać spójne wyniki, zablokuj stałe wypełnienia i formatowanie tekstu na wymaganych 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 niestandardowego umieszczenia nakładki nad wykresem?
Tak. Po zwalidowaniu układu wykresu dostępne są rzeczywiste współrzędne X i Y elementów (na przykład DataLabel), co ułatwia precyzyjne pozycjonowanie nakładek.