Mengelola Seri Data Diagram dalam Presentasi dengan Java
Gambaran Umum
Diagram dapat menyimpan nilai yang dipetakan di sel workbook atau langsung sebagai literal numerik. Sebuah IChartSeries mewakili satu set nilai yang terkait, dan setiap IChartDataPoint mewakili sebuah titik dalam seri tersebut. Objek IChartCategory menyediakan label atau nilai pengelompokan yang dibagi oleh seri. Pada diagram yang dibuat dengan data default, nama seri, kategori, dan nilai titik menggunakan objek IChartDataCell dari workbook diagram.
Untuk diagram kategori tipikal, workbook default menggunakan baris 0 untuk nama seri, kolom 0 untuk nama kategori, dan sel-sel sisanya untuk nilai seri. Indeks worksheet, baris, dan kolom yang diteruskan ke IChartDataWorkbook.getCell berbasis nol. Tata letak ini berguna ketika Anda membuat diagram dengan data default, tetapi jangan mengasumsikan bahwa setiap diagram yang ada menggunakannya. Untuk presentasi yang dimuat, periksa sel-sel yang direferensikan oleh seri, kategori, dan titik data sebelum mengubah nilai workbook.
Pengaturan diagram memiliki tiga ruang lingkup berbeda:
- Pengaturan tingkat seri, seperti IChartSeries.getFormat, menyediakan tampilan default untuk semua titik dalam satu seri.
- Pengaturan titik data, seperti IChartDataPoint.getFormat, menimpa tampilan seri untuk satu titik.
- Pengaturan grup berlaku untuk seri yang kompatibel yang termasuk dalam satu IChartSeriesGroup. Akses grup melalui IChartSeries.getParentSeriesGroup ketika Anda perlu mengatur opsi seperti overlap atau lebar celah.
Ketika tidak ada isian titik atau seri yang eksplisit diatur, gaya dan tema diagram menentukan tampilan otomatis. Ketika format seri dan titik keduanya ada, format titik memiliki prioritas untuk titik tersebut.

Mengatur Nilai Seri Menggunakan Literal Numerik
Gunakan literal numerik ketika nilai seri berasal dari data aplikasi atau perhitungan dan tidak memerlukan referensi sel worksheet. Panggil setDataSourceTypeForValues dengan DataSourceType.DoubleLiterals sebelum menetapkan hasil getValue setiap titik melalui setAsLiteralDouble.
Pengaturan koleksi mengontrol tipe sumber semua nilai titik dalam seri tersebut. Metode getDataSourceType pada setiap nilai titik melaporkan tipe yang dipilih; ubah melalui pengaturan koleksi. Dengan Worksheet, gunakan getAsCell untuk mengakses sel yang direferensikan. Dengan DoubleLiterals, gunakan getAsLiteralDouble atau setAsLiteralDouble untuk membaca atau menulis angka secara langsung.
Contoh berikut membuat diagram kolom dengan seri dan kategori default, kemudian menetapkan nilai yang dihitung 10, 20, dan seterusnya ke titik yang ada pada seri pertamanya. Ia menyimpan presentasi, membuka kembali, dan mencetak nilai yang disimpan.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 300);
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
series.getDataPoints().setDataSourceTypeForValues(DataSourceType.DoubleLiterals);
for (int i = 0; i < series.getDataPoints().size(); i++) {
series.getDataPoints().get_Item(i).getValue().setAsLiteralDouble((i + 1) * 10);
}
presentation.save("numeric_literals.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Presentation reopenedPresentation = new Presentation("numeric_literals.pptx");
try {
ISlide reopenedSlide = reopenedPresentation.getSlides().get_Item(0);
IChart reopenedChart = (IChart) reopenedSlide.getShapes().get_Item(0);
IChartSeries reopenedSeries = reopenedChart.getChartData().getSeries().get_Item(0);
for (IChartDataPoint point : reopenedSeries.getDataPoints()) {
System.out.println(point.getValue().getAsLiteralDouble());
}
} finally {
reopenedPresentation.dispose();
}
Tipe sumber nilai titik terpisah dari IChartData.getDataSourceType, yang mengidentifikasi konfigurasi workbook internal atau eksternal diagram. Menggunakan literal numerik tidak, dengan sendirinya, menghapus workbook yang disematkan. Pada contoh ini, workbook tetap tersedia untuk label kategori, nama seri, dan seri lainnya. Lihat Chart Workbook untuk manajemen workbook.
Untuk diagram sebar dan gelembung, gunakan setDataSourceTypeForXValues dan setDataSourceTypeForYValues untuk memilih sumber bagi getXValue dan getYValue. Diagram gelembung juga menggunakan setDataSourceTypeForBubbleSizes untuk getBubbleSize. Tetapkan setiap sumber yang berlaku ke DoubleLiterals sebelum menetapkan angka melalui metode setAsLiteralDouble nilai tersebut.
Mengatur Overlap Seri Diagram
IChartSeries.getOverlap melaporkan berapa banyak batang atau kolom tumpang tindih dalam diagram 2D, dari -100 hingga 100 persen. Itu merupakan proyeksi read‑only dari pengaturan pada grup seri induk. Gunakan IChartSeriesGroup.setOverlap untuk memperbarui setiap seri yang kompatibel dalam grup tersebut. Opsi ini berlaku untuk tipe diagram yang menampilkan batang atau kolom bergrup; tidak memengaruhi grup seri yang tidak terkait dalam diagram kombinasi.
Contoh berikut mengatur overlap untuk grup yang berisi seri pertama:
import com.aspose.slides.*;
final int firstSlideIndex = 0;
final int firstSeriesIndex = 0;
final byte overlapPercent = 30;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
// Diagram baru berisi contoh seri, kategori, dan nilai.
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartSeries series = chart.getChartData().getSeries().get_Item(firstSeriesIndex);
series.getParentSeriesGroup().setOverlap(overlapPercent);
presentation.save("series_overlap.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Hasilnya:

Mengubah Warna Isian Seri
Gunakan IChartSeries.getFormat untuk mengatur isian default bagi seluruh seri. Jika sebuah titik sudah memiliki isian eksplisit, pengaturan IChartDataPoint.getFormat menimpa isian seri untuk titik tersebut.
Contoh berikut menerapkan isian biru solid pada seri pertama:
import com.aspose.slides.*;
import java.awt.Color;
final int firstSlideIndex = 0;
final int firstSeriesIndex = 0;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartSeries series = chart.getChartData().getSeries().get_Item(firstSeriesIndex);
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(Color.BLUE);
presentation.save("series_color.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Hasilnya:

Mengubah Nama Seri
Nama seri disimpan dalam workbook data diagram dan biasanya ditampilkan dalam legenda. Pada workbook default yang dibuat untuk diagram kolom berkelompok, sel B1 berada di baris 0, kolom 1 dan berisi nama seri pertama. Konstanta bernama dalam contoh berikut membuat struktur itu eksplisit:
import com.aspose.slides.*;
final int firstSlideIndex = 0;
final int worksheetIndex = 0;
final int seriesNameRowIndex = 0;
final int firstSeriesColumnIndex = 1;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, seriesNameRowIndex, firstSeriesColumnIndex);
seriesNameCell.setValue("Revenue");
presentation.save("series_name.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Anda juga dapat memperbarui sel yang sudah direferensikan oleh IChartSeries.getName. Pendekatan ini menghindari asumsi baris dan kolom tertentu dalam diagram yang ada:
import com.aspose.slides.*;
final int firstSlideIndex = 0;
final int firstSeriesIndex = 0;
final int firstNameCellIndex = 0;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartSeries series = chart.getChartData().getSeries().get_Item(firstSeriesIndex);
IChartDataCell seriesNameCell = series.getName().getAsCells().get_Item(firstNameCellIndex);
seriesNameCell.setValue("Revenue");
presentation.save("series_name.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Hasilnya:

Membuat Seri dengan Nama dari Beberapa Sel
Nama seri komposit berguna ketika nama produk dan periode pelaporan disimpan di sel workbook terpisah. Misalnya, Anda dapat menggabungkan Product A di B1 dan 2026 di C1 menjadi satu nama seri sambil tetap menautkan kedua bagian ke sel sumber masing-masing.
Gunakan IChartDataWorkbook.getCellCollection untuk mengambil rentang nama, lalu serahkan koleksi itu ke IChartSeriesCollection.add. Argumen skipHiddenCells mengontrol apakah sel tersembunyi disertakan: true mengecualikannya, sementara false menyertakannya. Contoh ini menggunakan false untuk menyertakan setiap sel dalam rentang nama.
Contoh berikut membuat presentasi dengan satu seri dan dua titik data. Sel B1:C1 hanya menyediakan nama seri; A2:A3 menyediakan label kategori, dan B2:B3 menyediakan nilai numerik.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 620, 180);
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
chart.setLegend(true);
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
workbook.clear(0);
// Dua sel ini menyediakan nama seri.
workbook.getCell(0, 0, 1, "Product A");
workbook.getCell(0, 0, 2, "2026");
IChartCellCollection nameCells = workbook.getCellCollection("Sheet1!$B$1:$C$1", false);
IChartSeries series = chart.getChartData().getSeries().add(nameCells, ChartType.ClusteredColumn);
// Sel terpisah menyediakan kategori dan titik data numerik.
IChartDataCell northCategory = workbook.getCell(0, 1, 0, "North");
IChartDataCell southCategory = workbook.getCell(0, 2, 0, "South");
chart.getChartData().getCategories().add(northCategory);
chart.getChartData().getCategories().add(southCategory);
IChartDataCell northValue = workbook.getCell(0, 1, 1, 120);
IChartDataCell southValue = workbook.getCell(0, 2, 1, 150);
series.getDataPoints().addDataPointForBarSeries(northValue);
series.getDataPoints().addDataPointForBarSeries(southValue);
presentation.save("composite_series_name.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Nama seri yang dihasilkan adalah Product A 2026, dengan spasi di antara dua nilai sel. Legenda menampilkan ini sebagai satu entri untuk kedua kolom. Gambar di bawah mengilustrasikan hasilnya:

Mendapatkan Warna Isian Seri Otomatis
IChartSeries.getAutomaticSeriesColor mengembalikan warna yang dihitung dari indeks seri dan gaya diagram. Ini adalah warna yang digunakan ketika isian seri belum didefinisikan secara eksplisit. Memanggil metode ini membaca warna yang dihitung; tidak menetapkan isian baru.
Contoh berikut mencetak warna otomatis setiap seri default:
import com.aspose.slides.*;
import java.awt.Color;
final int firstSlideIndex = 0;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
int seriesCount = chart.getChartData().getSeries().size();
for (int seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++) {
IChartSeries series = chart.getChartData().getSeries().get_Item(seriesIndex);
Color automaticColor = series.getAutomaticSeriesColor();
System.out.println("Series " + seriesIndex + ": " + automaticColor);
}
} finally {
presentation.dispose();
}
Output contoh untuk gaya diagram default:
Series 0: java.awt.Color[r=79,g=129,b=189]
Series 1: java.awt.Color[r=192,g=80,b=77]
Series 2: java.awt.Color[r=155,g=187,b=89]
Warna tepat tergantung pada gaya dan tema diagram.
Mengatur Warna Isian Invert untuk Seri Diagram
Untuk seri batang, kolom, dan gelembung, IChartSeries.setInvertIfNegative dapat menampilkan nilai negatif dengan isian yang berbeda. Tetapkan isian seri reguler ke solid, aktifkan invert, dan tetapkan warna nilai negatif melalui IChartSeries.getInvertedSolidFillColor. Angka negatif tetap tidak berubah dalam workbook; hanya warna tampilan yang berubah.
Contoh berikut menggantikan data diagram default dengan satu seri. Baris worksheet 0 berisi nama seri, kolom 0 berisi nama kategori, dan kolom 1 berisi nilai:
import com.aspose.slides.*;
import java.awt.Color;
final int firstSlideIndex = 0;
final int worksheetIndex = 0;
final int headerRowIndex = 0;
final int categoryColumnIndex = 0;
final int firstSeriesColumnIndex = 1;
final int firstDataRowIndex = 1;
String[] categoryNames = { "Category 1", "Category 2", "Category 3" };
int[] seriesValues = { -20, 50, -30 };
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartData chartData = chart.getChartData();
IChartDataWorkbook workbook = chartData.getChartDataWorkbook();
chartData.getSeries().clear();
chartData.getCategories().clear();
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, headerRowIndex, firstSeriesColumnIndex, "Series 1");
int chartType = chart.getType();
IChartSeries series = chartData.getSeries().add(seriesNameCell, chartType);
for (int categoryIndex = 0; categoryIndex < categoryNames.length; categoryIndex++) {
int dataRowIndex = firstDataRowIndex + categoryIndex;
String categoryName = categoryNames[categoryIndex];
int seriesValue = seriesValues[categoryIndex];
IChartDataCell categoryCell = workbook.getCell(worksheetIndex, dataRowIndex, categoryColumnIndex, categoryName);
chartData.getCategories().add(categoryCell);
IChartDataCell valueCell = workbook.getCell(worksheetIndex, dataRowIndex, firstSeriesColumnIndex, seriesValue);
series.getDataPoints().addDataPointForBarSeries(valueCell);
}
Color automaticSeriesColor = series.getAutomaticSeriesColor();
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(automaticSeriesColor);
series.setInvertIfNegative(true);
series.getInvertedSolidFillColor().setColor(Color.RED);
presentation.save("inverted_solid_fill_color.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Hasilnya:

Anda dapat mengaktifkan invert untuk satu titik melalui IChartDataPoint.setInvertIfNegative. Pada contoh berikut, invert dinonaktifkan untuk seri dan diaktifkan hanya untuk titik yang dipilih. Titik tersebut juga diberikan nilai negatif sehingga efeknya terlihat:
import com.aspose.slides.*;
import java.awt.Color;
final int firstSlideIndex = 0;
final int firstSeriesIndex = 0;
final int targetDataPointIndex = 2;
final int negativeValue = -30;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartSeries series = chart.getChartData().getSeries().get_Item(firstSeriesIndex);
Color automaticSeriesColor = series.getAutomaticSeriesColor();
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(automaticSeriesColor);
series.getInvertedSolidFillColor().setColor(Color.RED);
series.setInvertIfNegative(false);
IChartDataPoint dataPoint = series.getDataPoints().get_Item(targetDataPointIndex);
dataPoint.getValue().getAsCell().setValue(negativeValue);
dataPoint.setInvertIfNegative(true);
presentation.save("data_point_invert_color_if_negative.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Mengosongkan Nilai Titik Data Tertentu
Untuk membuat satu titik kosong tanpa menghapus titik lain, setel sel workbook yang mendasarinya ke null. Untuk diagram kolom, nilai yang dipetakan tersedia melalui IChartDataPoint.getValue. Titik data tetap pada posisi kategori yang sama, tetapi diagram memperlakukan nilainya sebagai kosong sesuai pengaturan nilai kosong diagram.
Contoh berikut mengosongkan hanya titik kedua dalam seri pertama:
import com.aspose.slides.*;
final int firstSlideIndex = 0;
final int firstSeriesIndex = 0;
final int targetDataPointIndex = 1;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartSeries series = chart.getChartData().getSeries().get_Item(firstSeriesIndex);
IChartDataPoint dataPoint = series.getDataPoints().get_Item(targetDataPointIndex);
dataPoint.getValue().getAsCell().setValue(null);
presentation.save("clear_data_point_value.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Diagram sebar menggunakan sel X dan Y terpisah, dan diagram gelembung juga menggunakan sel ukuran. Kosongkan hanya sel yang mewakili nilai yang ingin Anda hapus. Jangan panggil IChartDataPointCollection.clear ketika Anda ingin mempertahankan titik lain, karena metode itu menghapus semua titik data dari koleksi.
Mengontrol Tampilan Sel Kosong
Sel tersembunyi yang berisi nilai merupakan kasus terpisah dari sel kosong. Untuk menyertakan atau mengecualikan data dari baris dan kolom worksheet tersembunyi, lihat Include Data from Hidden Rows and Columns.
Sel workbook kosong mewakili data yang hilang; sel yang berisi 0 mewakili nilai numerik yang diketahui. Panggil IChartDataCell.setValue dengan null untuk membuat sel menjadi kosong. Nol numerik tetap nol terlepas dari pengaturan sel kosong.
Gunakan IChart.setDisplayBlanksAs untuk memilih cara diagram menampilkan sel kosong. Pengaturan ini berlaku untuk seluruh diagram. Ia mengubah cara kosong dipetakan, tanpa mengisi sel workbook kosong dengan nol atau nilai interpolasi.
Contoh mandiri berikut membuat diagram garis dengan satu seri, mengosongkan nilai untuk Hari 3, dan menyimpan diagram yang sama dengan setiap mode. Tidak diperlukan file input. IChartDataWorkbook menggunakan worksheet 0, kolom 0 untuk label kategori, dan kolom 1 untuk nilai; baris 0 memuat nama seri. Data akhir adalah 10, 20, empty, 30, 40.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 40, 40, 640, 400);
IChartData chartData = chart.getChartData();
IChartDataWorkbook workbook = chartData.getChartDataWorkbook();
chartData.getSeries().clear();
chartData.getCategories().clear();
IChartDataCell seriesNameCell = workbook.getCell(0, 0, 1, "Measurements");
IChartSeries series = chartData.getSeries().add(seriesNameCell, chart.getType());
int[] values = { 10, 20, 25, 30, 40 };
for (int i = 0; i < values.length; i++) {
IChartDataCell categoryCell = workbook.getCell(0, i + 1, 0, "Day " + (i + 1));
chartData.getCategories().add(categoryCell);
IChartDataCell valueCell = workbook.getCell(0, i + 1, 1, values[i]);
series.getDataPoints().addDataPointForLineSeries(valueCell);
}
// Biarkan Hari 3 benar-benar kosong, sambil mempertahankan kategorinya dan titik datanya.
workbook.getCell(0, 3, 1).setValue(null);
int[] modes = { DisplayBlanksAsType.Gap, DisplayBlanksAsType.Zero, DisplayBlanksAsType.Span };
String[] modeNames = { "Gap", "Zero", "Span" };
for (int i = 0; i < modes.length; i++) {
chart.setDisplayBlanksAs(modes[i]);
presentation.save("empty_cells_" + modeNames[i] + ".pptx", SaveFormat.Pptx);
}
} finally {
presentation.dispose();
}
Setiap file output menyimpan mode yang ditetapkan sebelum penyimpanan: empty_cells_Gap.pptx, empty_cells_Zero.pptx, dan empty_cells_Span.pptx. Untuk menyimpan hanya satu versi, tetapkan mode yang diinginkan dan simpan presentasi sekali saja alih‑alih mengulangi mode.
Perbandingan di bawah memperlihatkan data yang sama dalam ketiga file. Hari 3 kosong dalam workbook pada setiap kasus:

Efek yang terlihat tergantung pada tipe diagram. Diagram garis memudahkan perbandingan ketiga mode. Diagram batang dan kolom tidak memiliki garis yang menghubungkan kategori yang hilang, sehingga Span tidak dapat menghasilkan segmen penghubung seperti di atas; kolom yang hilang dan kolom ber‑tinggi nol dapat tampak serupa. Demikian pula, diagram sebar dengan hanya penanda tidak memiliki garis penghubung. Jangan mengharapkan tiga hasil berbeda untuk setiap tipe diagram; periksa output untuk tipe yang Anda gunakan.
Mengatur Lebar Celah Seri
Lebar celah adalah ruang antara kelompok batang atau kolom berdekatan, dinyatakan sebagai persentase lebar batang atau kolom. Seperti overlap, lebar ini dimiliki grup seri induk bukan satu seri. Panggil IChartSeriesGroup.setGapWidth sekali untuk grup tersebut. Nilai yang lebih besar menciptakan lebih banyak ruang antara grup; nilai yang lebih kecil membuatnya lebih padat.
Contoh berikut mengubah lebar celah dan menyimpan hanya presentasi akhir:
import com.aspose.slides.*;
final int firstSlideIndex = 0;
final int firstSeriesIndex = 0;
final int gapWidthPercent = 30;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(firstSlideIndex);
IChart chart = slide.getShapes().addChart(ChartType.StackedColumn, 20, 20, 500, 200);
IChartSeries series = chart.getChartData().getSeries().get_Item(firstSeriesIndex);
series.getParentSeriesGroup().setGapWidth(gapWidthPercent);
presentation.save("gap_width_30.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Hasilnya:

FAQ
Jenis diagram apa yang mendukung data seri?
Semua tipe diagram yang direpresentasikan oleh enumerasi ChartType menggunakan data diagram, tetapi seri‑serinya tidak semua memiliki struktur nilai atau pengaturan yang sama. Misalnya, diagram kategori menggunakan kategori dan nilai, diagram sebar menggunakan nilai X dan Y, dan diagram gelembung menambahkan ukuran gelembung. Gunakan metode pembuatan titik data yang sesuai dengan tipe seri. Opsi seperti overlap dan lebar celah hanya berlaku untuk grup batang atau kolom yang kompatibel.
Apa itu grup seri diagram?
Sebuah IChartSeriesGroup berisi seri yang kompatibel yang berbagi pengaturan plot tingkat grup. Diagram kombinasi dapat berisi lebih dari satu grup, sehingga mengubah grup yang diakses melalui satu seri tidak selalu mengubah setiap seri dalam diagram.
Apakah diagram yang baru dibuat berisi data default?
Ya. Secara default, IShapeCollection.addChart membuat contoh seri, kategori, dan nilai. Anda dapat mengedit sel‑sel tersebut atau mengosongkan koleksi seri dan kategori sebelum menambahkan kumpulan data yang sepenuhnya khusus. Overload juga dapat membuat diagram tanpa data default.
Bagaimana objek diagram terhubung ke sel workbook?
Nama seri, label kategori, dan nilai titik data mereferensikan sel dalam sebuah IChartDataWorkbook. Mengubah sel yang direferensikan memperbarui elemen diagram yang bersesuaian. Saat Anda membangun data khusus, jaga agar baris kategori dan baris nilai seri tetap selaras sehingga setiap titik dipetakan di bawah kategori yang dimaksud.
Bagaimana cara mengosongkan satu titik alih‑alih seluruh seri?
Setel sel nilai yang relevan ke null untuk mempertahankan posisi kategori titik tersebut sebagai titik kosong. Gunakan IChartDataPointCollection.clear hanya ketika Anda bermaksud menghapus semua titik dari seri tersebut. Jika Anda juga menghapus kategori, perbarui setiap seri agar nilai‑nya tetap selaras dengan koleksi kategori.
Bagaimana titik kosong ditampilkan?
Hasilnya bergantung pada tipe diagram dan nilai yang dikonfigurasi melalui IChart.setDisplayBlanksAs. Diagram yang didukung dapat menampilkan kosong sebagai celah, sebagai nilai nol, atau dengan menghubungkan titik‑titik tetangga. Pilih pengaturan yang sesuai dengan arti data yang hilang dalam presentasi Anda. Lihat Control the Display of Empty Cells untuk contoh lengkap dan perbandingan visual.
Bagaimana nilai negatif diformat?
Untuk seri batang, kolom, dan gelembung yang didukung, panggil IChartSeries.setInvertIfNegative dan setel warna yang dikembalikan oleh IChartSeries.getInvertedSolidFillColor. Anda dapat menimpa perilaku untuk titik individu dengan IChartDataPoint.setInvertIfNegative. Metode‑metode ini memengaruhi format, bukan nilai numerik yang disimpan.
Format mana yang menang ketika baik seri maupun titik diformat?
Format titik data eksplisit memiliki prioritas untuk titik tersebut. Titik lain terus menggunakan format seri eksplisit atau, bila format seri tidak didefinisikan, gaya dan tema diagram otomatis. Pengaturan grup seperti overlap dan lebar celah mengontrol tata letak dan bukan penimpaan format tingkat titik.
Apakah ada batas berapa banyak seri yang dapat dimiliki diagram?
Aspose.Slides tidak memberlakukan batas tetap terpisah untuk jumlah seri. Pada praktiknya, batas ditentukan oleh kendala file presentasi, memori yang tersedia, waktu render, dan keterbacaan diagram.
Apa yang harus diubah ketika kolom terlalu berdekatan atau terlalu jauh?
Panggil IChartSeriesGroup.setGapWidth pada grup seri induk yang sesuai. Tingkatkan nilai untuk memperlebar ruang antara grup, atau turunkan nilai untuk mendekatkan grup.