Quản lý series dữ liệu biểu đồ trong bản trình bày bằng Java
Tổng quan
Một biểu đồ lưu trữ dữ liệu đã vẽ trong một workbook dữ liệu biểu đồ. Một IChartSeries đại diện cho một tập hợp các giá trị liên quan, và mỗi IChartDataPoint trong tập hợp tham chiếu tới một hoặc nhiều ô trong workbook. Các đối tượng IChartCategory cung cấp các nhãn hoặc giá trị nhóm được chia sẻ bởi các tập hợp. Vì vậy tên tập hợp, các danh mục và giá trị điểm đều được kết nối với các đối tượng IChartDataCell thay vì chỉ được lưu trữ dưới dạng văn bản hiển thị.
Đối với một biểu đồ danh mục điển hình, workbook mặc định sử dụng hàng 0 cho tên các tập hợp, cột 0 cho tên danh mục, và các ô còn lại cho các giá trị tập hợp. Chỉ mục worksheet, hàng và cột được truyền tới IChartDataWorkbook.getCell là đánh số bắt đầu từ 0. Bố cục này hữu ích khi bạn tạo biểu đồ với dữ liệu mặc định, nhưng đừng cho rằng mọi biểu đồ hiện có đều sử dụng nó. Đối với một bản trình bày đã tải, hãy kiểm tra các ô được các tập hợp, danh mục và điểm dữ liệu tham chiếu trước khi thay đổi giá trị trong workbook.
Cài đặt biểu đồ có ba phạm vi khác nhau:
- Cài đặt mức độ tập hợp, chẳng hạn như IChartSeries.getFormat, cung cấp giao diện mặc định cho tất cả các điểm trong một tập hợp.
- Cài đặt mức độ điểm dữ liệu, chẳng hạn như IChartDataPoint.getFormat, ghi đè giao diện của tập hợp cho một điểm.
- Cài đặt nhóm áp dụng cho các tập hợp tương thích thuộc cùng một IChartSeriesGroup. Truy cập nhóm qua IChartSeries.getParentSeriesGroup khi bạn cần đặt các tùy chọn như độ chồng chéo hoặc độ rộng khoảng trống.
Khi không có màu nền điểm hoặc tập hợp nào được xác định rõ, kiểu biểu đồ và chủ đề sẽ quyết định giao diện tự động. Khi cả định dạng tập hợp và điểm đều tồn tại, định dạng điểm sẽ ưu tiên cho điểm đó.

Đặt Độ Chồng Chéo cho Tập Hợp Biểu Đồ
IChartSeries.getOverlap báo cáo mức độ chồng chéo của các thanh hoặc cột trong biểu đồ 2D, từ -100 đến 100 phần trăm. Đây là một phép chiếu chỉ đọc của cài đặt trên nhóm tập hợp cha. Sử dụng IChartSeriesGroup.setOverlap để cập nhật mọi tập hợp tương thích trong nhóm đó. Tùy chọn này áp dụng cho các loại biểu đồ hiển thị các thanh hoặc cột được nhóm lại; nó không ảnh hưởng đến các nhóm tập hợp không liên quan trong biểu đồ kết hợp.
Ví dụ sau thiết lập độ chồng chéo cho nhóm chứa tập hợp đầu tiên:
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);
// Biểu đồ mới chứa các series mẫu, danh mục và giá trị.
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();
}
Kết quả:

Thay Đổi Màu Nền Tập Hợp
Sử dụng IChartSeries.getFormat để đặt màu nền mặc định cho toàn bộ một tập hợp. Nếu một điểm đã có màu nền xác định, cài đặt IChartDataPoint.getFormat của nó sẽ ghi đè màu nền của tập hợp cho điểm đó.
Ví dụ sau áp dụng màu nền xanh đậm đặc cho tập hợp đầu tiên:
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();
}
Kết quả:

Thay Đổi Tên Tập Hợp
Tên một tập hợp được lưu trong workbook dữ liệu biểu đồ và thường được hiển thị trong chú giải. Trong workbook mặc định được tạo cho biểu đồ cột nhóm, ô B1 nằm ở hàng 0, cột 1 và chứa tên của tập hợp đầu tiên. Các hằng số được đặt tên trong ví dụ sau làm rõ cấu trúc đó:
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();
}
Bạn cũng có thể cập nhật ô đã được IChartSeries.getName tham chiếu. Cách này tránh việc giả định một hàng và cột cụ thể trong biểu đồ hiện có:
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();
}
Kết quả:

Tạo Tập Hợp với Tên từ Nhiều Ô
Tên tập hợp kết hợp hữu ích khi tên sản phẩm và giai đoạn báo cáo được lưu trong các ô workbook riêng biệt. Ví dụ, bạn có thể kết hợp Product A ở B1 và 2026 ở C1 thành một tên tập hợp duy nhất trong khi vẫn giữ cả hai phần liên kết với ô nguồn của chúng.
Sử dụng IChartDataWorkbook.getCellCollection để lấy dải tên, sau đó truyền dải này cho IChartSeriesCollection.add. Tham số skipHiddenCells điều khiển việc có bao gồm các ô ẩn hay không: true loại bỏ chúng, trong khi false bao gồm chúng. Ví dụ này sử dụng false để bao gồm mọi ô trong dải tên.
Ví dụ sau tạo một bản trình bày với một tập hợp và hai điểm dữ liệu. Các ô B1:C1 cung cấp chỉ tên tập hợp; A2:A3 cung cấp nhãn danh mục, và B2:B3 cung cấp các giá trị số.
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);
// Hai ô này cung cấp tên series.
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);
// Các ô riêng lẻ cung cấp danh mục và các điểm dữ liệu số.
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();
}
Tên tập hợp kết quả là Product A 2026, với một dấu cách giữa hai giá trị ô. Chú giải hiển thị điều này như một mục cho cả hai cột. Hình dưới minh họa kết quả:

Lấy Màu Nền Tự Động cho Tập Hợp
IChartSeries.getAutomaticSeriesColor trả về màu được tính toán từ chỉ số tập hợp và kiểu biểu đồ. Đây là màu được sử dụng khi màu nền tập hợp không được xác định rõ. Gọi phương thức này sẽ đọc màu đã tính toán; nó không gán màu mới.
Ví dụ sau in ra màu tự động của mỗi tập hợp mặc định:
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();
}
Kết quả mẫu cho kiểu biểu đồ mặc định:
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]
Màu sắc chính xác phụ thuộc vào kiểu biểu đồ và chủ đề.
Đặt Màu Đảo Ngược cho Tập Hợp Biểu Đồ
Đối với các tập hợp thanh, cột và bong bóng, IChartSeries.setInvertIfNegative có thể hiển thị các giá trị âm với màu nền khác. Đặt màu nền thường của tập hợp thành đặc, bật chế độ đảo ngược, và gán màu cho giá trị âm thông qua IChartSeries.getInvertedSolidFillColor. Các số âm vẫn giữ nguyên trong workbook; chỉ màu hiển thị của chúng thay đổi.
Ví dụ sau thay thế dữ liệu biểu đồ mặc định bằng một tập hợp. Hàng 0 của worksheet chứa tên tập hợp, cột 0 chứa tên danh mục, và cột 1 chứa các giá trị:
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();
}
Kết quả:

Bạn có thể bật chế độ đảo ngược cho một điểm thông qua IChartDataPoint.setInvertIfNegative. Trong ví dụ sau, chế độ đảo ngược bị tắt cho tập hợp và chỉ bật cho điểm đã chọn. Điểm này cũng được gán một giá trị âm để hiệu ứng hiển thị:
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();
}
Xóa Giá Trị Điểm Dữ Liệu Cụ Thể
Để làm cho một điểm trống mà không xóa các điểm khác, đặt ô workbook phía sau nó thành null. Đối với biểu đồ cột, giá trị đã vẽ có thể truy cập qua IChartDataPoint.getValue. Điểm dữ liệu sẽ vẫn ở cùng vị trí danh mục, nhưng biểu đồ sẽ xem giá trị của nó là trống dựa trên cài đặt giá trị trống của biểu đồ.
Ví dụ sau chỉ xóa điểm thứ hai trong tập hợp đầu tiên:
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();
}
Biểu đồ phân tán sử dụng các ô X và Y riêng biệt, và biểu đồ bong bóng cũng sử dụng một ô kích thước. Chỉ xóa ô đại diện cho giá trị bạn muốn loại bỏ. Không gọi IChartDataPointCollection.clear khi bạn muốn giữ lại các điểm khác, vì phương thức đó sẽ xóa mọi điểm dữ liệu khỏi bộ sưu tập.
Kiểm Soát Hiển Thị Các Ô Trống
Các ô ẩn chứa giá trị là một trường hợp riêng biệt so với các ô trống. Để bao gồm hoặc loại bỏ dữ liệu từ các hàng và cột ẩn của worksheet, xem Bao gồm Dữ liệu từ Các Hàng và Cột Ẩn.
Một ô workbook trống biểu thị dữ liệu thiếu; một ô chứa 0 biểu thị một giá trị số đã biết. Gọi IChartDataCell.setValue với null để làm ô trở thành trống. Số zero vẫn là zero bất kể cài đặt ô trống.
Sử dụng IChart.setDisplayBlanksAs để chọn cách biểu đồ hiển thị các ô trống. Cài đặt này áp dụng cho toàn bộ biểu đồ. Nó thay đổi cách vẽ các chỗ trống, mà không điền ô workbook trống bằng zero hoặc giá trị nội suy.
Ví dụ tự chứa sau tạo một biểu đồ đường với một tập hợp, xóa giá trị cho Ngày 3, và lưu cùng một biểu đồ với mỗi chế độ. Không cần tệp đầu vào. IChartDataWorkbook sử dụng worksheet 0, cột 0 cho nhãn danh mục, và cột 1 cho giá trị; hàng 0 chứa tên tập hợp. Dữ liệu cuối cùng là 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);
}
// Để Ngày 3 thực sự trống, trong khi vẫn giữ lại danh mục và điểm dữ liệu của nó.
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();
}
Mỗi tệp đầu ra lưu chế độ được chỉ định trước khi lưu: empty_cells_Gap.pptx, empty_cells_Zero.pptx và empty_cells_Span.pptx. Để lưu chỉ một phiên bản, chỉ định chế độ mong muốn và lưu bản trình bày một lần thay vì lặp lại qua các chế độ.
So sánh dưới đây hiển thị cùng một dữ liệu trong cả ba tệp. Ngày 3 là trống trong workbook trong mọi trường hợp:

Hiệu ứng hiển thị phụ thuộc vào loại biểu đồ. Biểu đồ đường làm cho ba chế độ dễ so sánh. Biểu đồ thanh và cột không có đường để nối qua một danh mục thiếu, vì vậy Span không thể tạo đoạn nối như trên; một cột thiếu và một cột chiều cao zero cũng có thể trông giống nhau. Tương tự, biểu đồ phân tán chỉ có các điểm đánh dấu sẽ không có đường nối. Đừng mong đợi ba kết quả riêng biệt cho mọi loại biểu đồ; hãy kiểm tra kết quả cho loại bạn sử dụng.
Đặt Độ Rộng Khoảng Cách Giữa Các Tập Hợp
Độ rộng khoảng cách là khoảng cách giữa các cụm thanh hoặc cột liền kề, được biểu thị dưới dạng phần trăm của độ rộng thanh hoặc cột. Giống như độ chồng chéo, nó thuộc về nhóm tập hợp cha thay vì một tập hợp riêng. Gọi IChartSeriesGroup.setGapWidth một lần cho nhóm. Giá trị lớn hơn tạo nhiều không gian hơn giữa các cụm; giá trị nhỏ hơn làm chúng dày đặc hơn.
Ví dụ sau thay đổi độ rộng khoảng cách và chỉ lưu bản trình bày cuối cùng:
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();
}
Kết quả:

FAQ
Các loại biểu đồ nào hỗ trợ dữ liệu tập hợp?
Tất cả các loại biểu đồ được biểu diễn bởi enumeration ChartType đều sử dụng dữ liệu biểu đồ, nhưng các tập hợp của chúng không phải lúc nào cũng có cùng cấu trúc giá trị hoặc cài đặt. Ví dụ, biểu đồ danh mục sử dụng danh mục và giá trị, biểu đồ phân tán sử dụng giá trị X và Y, và biểu đồ bong bóng thêm kích thước bong bóng. Sử dụng phương pháp tạo điểm dữ liệu phù hợp với loại tập hợp. Các tùy chọn như độ chồng chéo và độ rộng khoảng cách chỉ áp dụng cho các nhóm thanh hoặc cột tương thích.
Nhóm tập hợp biểu đồ là gì?
IChartSeriesGroup chứa các tập hợp tương thích mà chia sẻ các cài đặt vẽ mức độ nhóm. Một biểu đồ kết hợp có thể chứa hơn một nhóm, vì vậy việc thay đổi nhóm được truy cập qua một tập hợp không nhất thiết thay đổi mọi tập hợp trong biểu đồ.
Biểu đồ mới tạo có chứa dữ liệu mặc định không?
Có. Theo mặc định, IShapeCollection.addChart tạo các tập hợp mẫu, danh mục và giá trị. Bạn có thể chỉnh sửa các ô đó hoặc xóa cả tập hợp và bộ sưu tập danh mục trước khi thêm một bộ dữ liệu tùy chỉnh hoàn toàn. Một overload cũng có thể tạo biểu đồ mà không có dữ liệu mặc định.
Các đối tượng biểu đồ được kết nối với các ô workbook như thế nào?
Tên tập hợp, nhãn danh mục và giá trị điểm dữ liệu tham chiếu tới các ô trong một IChartDataWorkbook. Thay đổi một ô được tham chiếu sẽ cập nhật phần tử biểu đồ tương ứng. Khi bạn xây dựng dữ liệu tùy chỉnh, giữ cho các hàng danh mục và các hàng giá trị của các tập hợp được căn chỉnh để mỗi điểm được vẽ dưới danh mục dự định.
Làm sao để xóa một điểm thay vì toàn bộ tập hợp?
Đặt ô giá trị liên quan thành null để giữ vị trí danh mục của điểm như một điểm trống. Sử dụng IChartDataPointCollection.clear chỉ khi bạn muốn xóa tất cả các điểm khỏi tập hợp đó. Nếu bạn cũng xóa các danh mục, hãy cập nhật mọi tập hợp sao cho giá trị của chúng vẫn căn chỉnh với bộ sưu tập danh mục.
Các điểm trống được hiển thị như thế nào?
Kết quả phụ thuộc vào loại biểu đồ và giá trị được cấu hình qua IChart.setDisplayBlanksAs. Các biểu đồ được hỗ trợ có thể hiển thị chỗ trống dưới dạng khoảng trống, giá trị zero, hoặc bằng cách nối các điểm lân cận. Chọn cài đặt phù hợp với ý nghĩa của dữ liệu thiếu trong bản trình bày của bạn. Xem Kiểm Soát Hiển Thị Các Ô Trống để xem ví dụ đầy đủ và so sánh trực quan.
Giá trị âm được định dạng như thế nào?
Đối với các tập hợp thanh, cột và bong bóng được hỗ trợ, gọi IChartSeries.setInvertIfNegative và đặt màu được trả về bởi IChartSeries.getInvertedSolidFillColor. Bạn có thể ghi đè hành vi cho một điểm riêng lẻ bằng IChartDataPoint.setInvertIfNegative. Các phương thức này ảnh hưởng đến định dạng, không phải giá trị số được lưu.
Định dạng nào được ưu tiên khi cả tập hợp và điểm đều được định dạng?
Định dạng điểm dữ liệu cụ thể sẽ ưu tiên cho điểm đó. Các điểm khác vẫn sử dụng định dạng tập hợp rõ ràng hoặc, khi không có định dạng tập hợp, dùng kiểu biểu đồ và chủ đề tự động. Cài đặt nhóm như độ chồng chéo và độ rộng khoảng cách kiểm soát bố cục và không phải là ghi đè định dạng mức độ điểm.
Có giới hạn về số lượng tập hợp mà một biểu đồ có thể chứa không?
Aspose.Slides không áp đặt một giới hạn cố định riêng cho số lượng tập hợp. Trong thực tế, các hạn chế của tệp bản trình bày, bộ nhớ khả dụng, thời gian render và khả năng đọc đồ thị quyết định một giới hạn thực tế.
Cần thay đổi gì khi các cột quá gần nhau hoặc quá xa nhau?
Gọi IChartSeriesGroup.setGapWidth trên nhóm tập hợp cha tương ứng. Tăng giá trị để mở rộng không gian giữa các cụm, hoặc giảm nó để đưa các cụm lại gần nhau hơn.