Sesuaikan Titik Data dalam Diagram Treemap dan Sunburst Menggunakan PHP
Pendahuluan
Di antara jenis diagram PowerPoint lainnya, ada dua jenis “hierarkis” – Treemap dan Sunburst chart (juga dikenal sebagai Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph atau Multi Level Pie Chart). Diagram‑diagram ini menampilkan data hierarkis yang diatur seperti pohon – dari daun hingga puncak cabang. Daun didefinisikan oleh titik data seri, dan setiap tingkat pengelompokan bersarang berikutnya didefinisikan oleh kategori yang bersangkutan. Aspose.Slides for PHP via Java memungkinkan pemformatan titik data Sunburst Chart dan Treemap.
Berikut contoh Sunburst Chart, di mana data pada kolom Series1 mendefinisikan node daun, sementara kolom lain mendefinisikan titik data hierarkis:
Mari mulai dengan menambahkan diagram Sunburst baru ke presentasi:
$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();
}
}
Jika perlu memformat titik data diagram, gunakan hal‑hal berikut:
ChartDataPointLevelsManager,
ChartDataPointLevel kelas
dan ChartDataPoint::getDataPointLevels metode
menyediakan akses untuk memformat titik data Treemap dan Sunburst.
ChartDataPointLevelsManager
digunakan untuk mengakses kategori multi‑tingkat – ia mewakili kontainer dari
ChartDataPointLevel objek.
Pada dasarnya ia merupakan wrapper untuk
ChartCategoryLevelsManager dengan
properti‑properti tambahan khusus untuk titik data.
Kelas ChartDataPointLevel memiliki
dua metode: getFormat dan
getDataLabel yang
menyediakan akses ke pengaturan yang bersesuaian.
Tampilkan Nilai Titik Data
Tampilkan nilai titik data “Leaf 4”:
$dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
$dataPoints->get_Item(3)->getDataPointLevels()->get_Item(0)->getLabel()->getDataLabelFormat()->setShowValue(true);
Atur Label dan Warna Titik Data
Atur label data “Branch 1” agar menampilkan nama seri (“Series1”) alih‑alih nama kategori. Kemudian atur warna teks menjadi kuning:
$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);
Atur Warna Cabang Titik Data
Ubah warna cabang “Steam 4”:
$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();
}
}
FAQ
Apakah saya dapat mengubah urutan (penyortiran) segmen pada Sunburst/Treemap?
Tidak. PowerPoint menyortir segmen secara otomatis (biasanya menurun, searah jarum jam). Aspose.Slides meniru perilaku ini: Anda tidak dapat mengubah urutan secara langsung; Anda melakukannya dengan memproses data terlebih dahulu.
Bagaimana tema presentasi memengaruhi warna segmen dan label?
Warna diagram mewarisi tema/palet presentasi kecuali Anda secara eksplisit mengatur isian/font. Untuk hasil yang konsisten, gunakan isian padat dan format teks pada tingkat yang diperlukan.
Apakah ekspor ke PDF/PNG mempertahankan warna cabang khusus dan pengaturan label?
Ya. Saat mengekspor presentasi, pengaturan diagram (isian, label) dipertahankan dalam format output karena Aspose.Slides merender dengan format diagram yang telah diterapkan.
Bisakah saya menghitung koordinat sebenarnya dari label/elemen untuk penempatan overlay khusus di atas diagram?
Ya. Setelah tata letak diagram divalidasi, nilai x aktual dan y aktual tersedia untuk elemen (misalnya, sebuah DataLabel), yang membantu dalam penempatan overlay secara tepat.