Treemap ve Sunburst Grafiklerinde Veri Noktalarını Java ile Özelleştirme

Giriş

PowerPoint grafiklerinin diğer türleri arasında, iki “hiyerarşik” tür vardır - Treemap ve Sunburst grafiği ( aynı zamanda Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph veya Multi Level Pie Chart olarak da bilinir). Bu grafikler ağaç şeklinde düzenlenen hiyerarşik verileri gösterir - yapraklardan dalın en üstüne. Yapraklar serinin veri noktalarıyla tanımlanır ve sonraki her iç içe gruplama seviyesi ilgili kategoriyle tanımlanır. Aspose.Slides for Java, Java’da Sunburst Chart ve Treemap veri noktalarını biçimlendirmeye izin verir.

İşte bir Sunburst Grafiği, Series1 sütunundaki verilerin yaprak düğümleri tanımladığı, diğer sütunların ise hiyerarşik veri noktalarını tanımladığı bir örnek:

todo:image_alt_text

Sunburst grafiğini sunuma eklemeye başlayalım:

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

Grafiğin veri noktalarını biçimlendirmek gerekirse, aşağıdakileri kullanmalıyız:

IChartDataPointLevelsManager, IChartDataPointLevel sınıfları ve IChartDataPoint.getDataPointLevels yöntemi, Treemap ve Sunburst grafiklerinin veri noktalarını biçimlendirmeye erişim sağlar. IChartDataPointLevelsManager çok seviyeli kategorilere erişmek için kullanılır - bu, IChartDataPointLevel nesnelerinin kapsayıcısını temsil eder. Temelde bu, veri noktalarına özgü eklenmiş özelliklere sahip IChartCategoryLevelsManager için bir sarmalayıcıdır. IChartDataPointLevel sınıfının iki yöntemi vardır: getFormat ve getDataLabel ilgili ayarlara erişim sağlar.

Veri Noktası Değerini Göster

“Leaf 4” veri noktasının değerini göster:

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

Veri Noktası Etiketini ve Rengini Ayarla

“Branch 1” veri etiketini kategori adı yerine seri adı (“Series1”) gösterecek şekilde ayarlayın. Ardından metin rengini sarı yapın:

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

Veri Noktası Dal Rengini Ayarla

“Steam 4” dalının rengini değiştirin:

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

SSS

Sunburst/Treemap segmentlerinin sırasını (sıralamasını) değiştirebilir miyim?

Hayır. PowerPoint segmentleri otomatik olarak (genellikle azalan değerlerle, saat yönünde) sıralar. Aspose.Slides bu davranışı yansıtır: sıralamayı doğrudan değiştiremezsiniz; bunu veriyi ön işleyerek elde edersiniz.

Sunum teması, segment ve etiket renklerini nasıl etkiler?

Grafik renkleri, doldurulmaları/yazı tiplerini açıkça ayarlamazsanız, sunumun tema/renk paleti üzerine miras alır. Tutarlı sonuçlar için, gerekli seviyelerde katı dolgu ve metin biçimlendirmesini sabitleyin.

PDF/PNG olarak dışa aktarma, özel dal renklerini ve etiket ayarlarını koruyacak mı?

Evet. Sunumu dışa aktarırken, grafik ayarları (dolgu, etiketler) çıktı formatlarında korunur çünkü Aspose.Slides, grafiğin biçimlendirilmiş halini render eder.

Grafiğin üzerine özel kaplama yerleştirmek için bir etiket/elemanın gerçek koordinatlarını hesaplayabilir miyim?

Evet. Grafik yerleşimi doğrulandıktan sonra, öğeler için gerçek x ve gerçek y değerleri mevcuttur (örneğin, bir DataLabel), bu da kaplamaların kesin konumlandırılmasına yardımcı olur.