Kelola Seri Data Diagram dalam Presentasi Menggunakan PHP
Gambaran Umum
Artikel ini menjelaskan peran ChartSeries di Aspose.Slides, dengan fokus pada bagaimana data disusun dan divisualisasikan dalam presentasi. Objek-objek ini menyediakan elemen dasar yang menentukan kumpulan titik data, kategori, dan parameter tampilan individu dalam sebuah diagram. Dengan menggunakan ChartSeries, pengembang dapat mengintegrasikan sumber data yang mendasarinya secara mulus dan mempertahankan kontrol penuh atas cara informasi ditampilkan, menghasilkan presentasi yang dinamis dan berbasis data yang dengan jelas menyampaikan wawasan dan analisis.
Sebuah seri adalah baris atau kolom angka yang digambarkan dalam diagram.

Atur Overlap Seri Diagram
Dengan metode getParentSeriesGroup, Anda dapat menentukan seberapa banyak batang dan kolom harus saling tumpang tindih pada diagram 2D (rentang: -100 hingga 100). Properti ini berlaku untuk semua seri dalam grup seri induk: ini adalah proyeksi dari properti grup yang sesuai. Oleh karena itu, properti ini hanya dapat dibaca.
Gunakan metode ChartSeriesGroup::setOverlap untuk mengatur nilai Overlap yang Anda inginkan.
- Buat instance dari kelas Presentation.
- Tambahkan diagram kolom berkelompok pada slide.
- Akses seri diagram pertama.
- Akses
ParentSeriesGroupdari seri diagram dan atur nilai overlap yang Anda inginkan untuk seri tersebut. - Tuliskan presentasi yang telah dimodifikasi ke file PPTX.
This PHP code shows you how to set the overlap for a chart series:
$pres = new Presentation();
try {
# Menambahkan diagram
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400, true);
$series = $chart->getChartData()->getSeries();
if (java_values($series->get_Item(0)->getOverlap()) == 0) {
# Menetapkan tumpang tindih seri
$series->get_Item(0)->getParentSeriesGroup()->setOverlap(-30);
}
# Menulis file presentasi ke disk
$pres->save("SetChartSeriesOverlap_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Ubah Warna Seri
Aspose.Slides untuk PHP via Java memungkinkan Anda mengubah warna seri dengan cara berikut:
- Buat instance dari kelas Presentation.
- Tambahkan diagram pada slide.
- Akses seri yang warnanya ingin Anda ubah.
- Atur tipe isian dan warna isian yang Anda inginkan.
- Simpan presentasi yang telah dimodifikasi.
This PHP code shows you how to change a series' color:
$pres = new Presentation("test.pptx");
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Pie, 50, 50, 600, 400);
$point = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints()->get_Item(1);
$point->setExplosion(30);
$point->getFormat()->getFill()->setFillType(FillType::Solid);
$point->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Ubah Warna Kategori Seri
Aspose.Slides untuk PHP via Java memungkinkan Anda mengubah warna kategori seri dengan cara berikut:
- Buat instance dari kelas Presentation.
- Tambahkan diagram pada slide.
- Akses kategori seri yang warnanya ingin Anda ubah.
- Atur tipe isian dan warna isian yang Anda inginkan.
- Simpan presentasi yang telah dimodifikasi.
This code shows you how to change a series category’s color:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
$point = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints()->get_Item(0);
$point->getFormat()->getFill()->setFillType(FillType::Solid);
$point->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Ubah Nama Seri
Secara default, nama legenda untuk diagram berasal dari isi sel di atas setiap kolom atau baris data.
Dalam contoh kami (gambar contoh),
- kolom adalah Series 1, Series 2, dan Series 3;
- baris adalah Category 1, Category 2, Category 3, dan Category 4.
Aspose.Slides untuk PHP via Java memungkinkan Anda memperbarui atau mengubah nama seri dalam data diagram dan legendanya.
This PHP code shows you how to change a series' name in its chart data ChartDataWorkbook:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Column3D, 50, 50, 600, 400, true);
$seriesCell = $chart->getChartData()->getChartDataWorkbook()->getCell(0, 0, 1);
$seriesCell->setValue("New name");
$pres->save("pres.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
This PHP code shows you how to change a series name in its legend through Series:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Column3D, 50, 50, 600, 400, true);
$series = $chart->getChartData()->getSeries()->get_Item(0);
$name = $series->getName();
$name->getAsCells()->get_Item(0)->setValue("New name");
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Atur Warna Isian Seri Diagram
Aspose.Slides untuk PHP via Java memungkinkan Anda mengatur warna isian otomatis untuk seri diagram di dalam area plot dengan cara berikut:
- Buat instance dari kelas Presentation.
- Dapatkan referensi slide dengan indeksnya.
- Tambahkan diagram dengan data default berdasarkan tipe yang Anda pilih (pada contoh di bawah, kami menggunakan
ChartType::ClusteredColumn). - Akses seri diagram dan atur warna isian menjadi Automatic.
- Simpan presentasi ke file PPTX.
This PHP code shows you how to set the automatic fill color for a chart series:
$pres = new Presentation();
try {
# Membuat diagram kolom berkelompok
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 50, 600, 400);
# Menetapkan format isian seri ke otomatis
for($i = 0; $i < java_values($chart->getChartData()->getSeries()->size()) ; $i++) {
$chart->getChartData()->getSeries()->get_Item($i)->getAutomaticSeriesColor();
}
# Menulis file presentasi ke disk
$pres->save("AutoFillSeries_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Atur Warna Isian Terbalik untuk Seri Diagram
Aspose.Slides memungkinkan Anda mengatur warna isian terbalik untuk seri diagram di dalam area plot dengan cara berikut:
- Buat instance dari kelas Presentation.
- Dapatkan referensi slide dengan indeksnya.
- Tambahkan diagram dengan data default berdasarkan tipe yang Anda pilih (pada contoh di bawah, kami menggunakan
ChartType::ClusteredColumn). - Akses seri diagram dan atur warna isian menjadi invert.
- Simpan presentasi ke file PPTX.
This PHP code demonstrates the operation:
$inverColor = java("java.awt.Color")->RED;
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 400, 300);
$workBook = $chart->getChartData()->getChartDataWorkbook();
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
# Menambahkan seri dan kategori baru
$chart->getChartData()->getSeries()->add($workBook->getCell(0, 0, 1, "Series 1"), $chart->getType());
$chart->getChartData()->getCategories()->add($workBook->getCell(0, 1, 0, "Category 1"));
$chart->getChartData()->getCategories()->add($workBook->getCell(0, 2, 0, "Category 2"));
$chart->getChartData()->getCategories()->add($workBook->getCell(0, 3, 0, "Category 3"));
# Mengambil seri diagram pertama dan mengisi data serinya.
$series = $chart->getChartData()->getSeries()->get_Item(0);
$series->getDataPoints()->addDataPointForBarSeries($workBook->getCell(0, 1, 1, -20));
$series->getDataPoints()->addDataPointForBarSeries($workBook->getCell(0, 2, 1, 50));
$series->getDataPoints()->addDataPointForBarSeries($workBook->getCell(0, 3, 1, -30));
$seriesColor = $series->getAutomaticSeriesColor();
$series->setInvertIfNegative(true);
$series->getFormat()->getFill()->setFillType(FillType::Solid);
$series->getFormat()->getFill()->getSolidFillColor()->setColor($seriesColor);
$series->getInvertedSolidFillColor()->setColor($inverColor);
$pres->save("SetInvertFillColorChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Atur Seri untuk Terbalik Saat Nilai Negatif
Aspose.Slides memungkinkan Anda mengatur pembalikan melalui properti IChartDataPoint.InvertIfNegative dan ChartDataPoint.InvertIfNegative. Ketika pembalikan diatur menggunakan properti tersebut, titik data akan membalik warna ketika menerima nilai negatif.
This PHP code demonstrates the operation:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400, true);
$series = $chart->getChartData()->getSeries();
$chart->getChartData()->getSeries()->clear();
$chartSeries = $series->add($chart->getChartData()->getChartDataWorkbook()->getCell(0, "B1"), $chart->getType());
$chartSeries->getDataPoints()->addDataPointForBarSeries($chart->getChartData()->getChartDataWorkbook()->getCell(0, "B2", -5));
$chartSeries->getDataPoints()->addDataPointForBarSeries($chart->getChartData()->getChartDataWorkbook()->getCell(0, "B3", 3));
$chartSeries->getDataPoints()->addDataPointForBarSeries($chart->getChartData()->getChartDataWorkbook()->getCell(0, "B4", -2));
$chartSeries->getDataPoints()->addDataPointForBarSeries($chart->getChartData()->getChartDataWorkbook()->getCell(0, "B5", 1));
$chartSeries->setInvertIfNegative(false);
$chartSeries->getDataPoints()->get_Item(2)->setInvertIfNegative(true);
$pres->save("out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Bersihkan Data Titik Spesifik
Aspose.Slides untuk PHP via Java memungkinkan Anda membersihkan data DataPoints untuk seri diagram tertentu dengan cara berikut:
- Buat instance dari kelas Presentation.
- Dapatkan referensi slide melalui indeksnya.
- Dapatkan referensi diagram melalui indeksnya.
- Iterasi semua
DataPointsdiagram dan aturXValuesertaYValuemenjadi null. - Bersihkan semua
DataPointsuntuk seri diagram tertentu. - Tuliskan presentasi yang telah dimodifikasi ke file PPTX.
This PHP code demonstrates the operation:
$pres = new Presentation("TestChart.pptx");
try {
$sl = $pres->getSlides()->get_Item(0);
$chart = $sl->getShapes()->get_Item(0);
foreach($chart->getChartData()->getSeries()->get_Item(0)->getDataPoints() as $dataPoint) {
$dataPoint->getXValue()->getAsCell()->setValue(null);
$dataPoint->getYValue()->getAsCell()->setValue(null);
}
$chart->getChartData()->getSeries()->get_Item(0)->getDataPoints()->clear();
$pres->save("ClearSpecificChartSeriesDataPointsData.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Atur Lebar Celah Seri
Aspose.Slides untuk PHP via Java memungkinkan Anda mengatur Lebar Celah (GapWidth) untuk sebuah seri melalui properti GapWidth dengan cara berikut:
- Buat instance dari kelas Presentation.
- Akses slide pertama.
- Tambahkan diagram dengan data default.
- Akses seri diagram mana saja.
- Atur properti
GapWidth. - Tuliskan presentasi yang telah dimodifikasi ke file PPTX.
This code shows you how to set a series' Gap Width:
# Membuat presentasi kosong
$pres = new Presentation();
try {
# Mengakses slide pertama presentasi
$slide = $pres->getSlides()->get_Item(0);
# Menambahkan diagram dengan data default
$chart = $slide->getShapes()->addChart(ChartType::StackedColumn, 0, 0, 500, 500);
# Menetapkan indeks lembar data diagram
$defaultWorksheetIndex = 0;
# Mendapatkan lembar kerja data diagram
$fact = $chart->getChartData()->getChartDataWorkbook();
# Menambahkan seri
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 1, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 2, "Series 2"), $chart->getType());
# Menambahkan Kategori
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
# Mengambil seri diagram kedua
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Mengisi data seri
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 2, 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 2, 10));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 2, 60));
# Menetapkan nilai GapWidth
$series->getParentSeriesGroup()->setGapWidth(50);
# Menyimpan presentasi ke disk
$pres->save("GapWidth_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Apakah ada batasan jumlah seri yang dapat dimiliki satu diagram?
Aspose.Slides tidak memberlakukan batas tetap pada jumlah seri yang Anda tambahkan. Batas praktis ditentukan oleh keterbacaan diagram dan memori yang tersedia untuk aplikasi Anda.
Bagaimana jika kolom dalam sebuah klaster terlalu dekat atau terlalu jauh satu sama lain?
Sesuaikan pengaturan GapWidth untuk seri tersebut (atau grup seri induknya). Meningkatkan nilai akan memperlebar ruang antar kolom, sementara menurunkannya akan mendekatkan kolom tersebut.