PHP Kullanarak Treemap ve Sunburst Grafiklerinde Veri Noktalarını Özelleştirme
Giriş
PowerPoint grafiklerinin diğer türlerinin yanı sıra iki “hiyerarşik” tür vardır - Treemap ve Sunburst grafiği (Sunburst Grafiği, Sunburst Diyagramı, Radial Grafik, Radial Çizim veya Çok Seviyeli Pasta Grafiği olarak da bilinir). Bu grafikler, yapraklardan dalın en üstüne kadar bir ağaç şeklinde düzenlenmiş hiyerarşik verileri gösterir. Yapraklar, seri veri noktalarıyla tanımlanır ve sonraki her iç içe grup seviyesi ilgili kategoriyle tanımlanır. Aspose.Slides for PHP via Java, Sunburst Grafik ve Treemap veri noktalarını biçimlendirmeye olanak tanır.
İşte bir Sunburst Grafik, Series1 sütunundaki veriler yaprak düğümleri tanımlar, diğer sütunlar ise hiyerarşik veri noktalarını tanımlar:
Sunburst grafiğini sunuma eklemeye başlayalım:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 100, 100, 450, 400);
# ...
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Grafiğin veri noktalarını biçimlendirmek gerekiyorsa, aşağıdakileri kullanmalıyız:
ChartDataPointLevelsManager, ChartDataPointLevel sınıfları ve ChartDataPoint::getDataPointLevels yöntemi, Treemap ve Sunburst grafiklerinin veri noktalarını biçimlendirmeye erişim sağlar. ChartDataPointLevelsManager çok seviyeli kategorilere erişmek için kullanılır – bu, ChartDataPointLevel nesnelerinin konteynerini temsil eder. Temelde, veri noktalarına özgü ek özelliklerle ChartCategoryLevelsManager için bir sarmalayıcıdır. ChartDataPointLevel sınıfı iki yönteme sahiptir: getFormat ve getDataLabel; bu yöntemler ilgili ayarlara erişim sağlar.
Bir Veri Noktasının Değerini Göster
“Leaf 4” veri noktasının değerini göster:
$dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
$dataPoints->get_Item(3)->getDataPointLevels()->get_Item(0)->getLabel()->getDataLabelFormat()->setShowValue(true);
Bir Veri Noktasının Etiketini ve Rengini Ayarla
“Branch 1” veri etiketini kategori adı yerine seri adı (“Series1”) gösterecek şekilde ayarlayın. Ardından metin rengini sarıya değiştirin:
$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(java("java.awt.Color")->YELLOW);
Bir Veri Noktasının Dal Rengini Ayarla
“Steam 4” dalının rengini değiştirin:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 100, 100, 450, 400);
$dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
$stem4branch = $dataPoints->get_Item(9)->getDataPointLevels()->get_Item(1);
$stem4branch->getFormat()->getFill()->setFillType(FillType::Solid);
$stem4branch->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
$pres->save("pres.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
SSS
Sunburst/Treemap segmentlerinin sırasını (sıralamasını) değiştirebilir miyim?
Hayır. PowerPoint segmentleri otomatik olarak sıralar (genellikle azalan değerlerle, saat yönünde). Aspose.Slides bu davranışı yansıtır: sıralamayı doğrudan değiştiremezsiniz; bunu veriyi ön işleyerek elde edersiniz.
Sunum temasının segment ve etiket renklerini nasıl etkilediği?
Grafik renkleri, doldurulmaları/yazı tiplerini açıkça ayarlamazsanız sunumun tema/renk paleti üzerinden devralınır. Tutarlı sonuçlar için, gereken katmanlarda katı doldurmaları ve metin biçimlendirmesini sabitleyin.
PDF/PNG’ye dışa aktarırken özel dal renkleri ve etiket ayarları korunur mu?
Evet. Sunumu dışa aktarırken, grafik ayarları (doldurmalar, etiketler) çıktı formatlarında korunur çünkü Aspose.Slides, grafiğin uygulanmış biçimlendirmesiyle render eder.
Grafiğin üzerine özel bindirme yerleştirmek için bir etiket/öğenin 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 (örneğin bir DataLabel) mevcuttur; bu, bindirmelerin kesin konumlandırılmasına yardımcı olur.