Anpassen von Kreisdiagrammen in Präsentationen auf Android
Übersicht
Dieser Artikel erklärt, wie man mit Kreisdiagrammen in Aspose.Slides arbeitet. Er zeigt, wie man sekundäre Plot‑Optionen für Pie of Pie‑ und Bar of Pie‑Diagramme konfiguriert und wie man automatische Scheibenfarbgebung für ein Standard‑Kreisdiagramm aktiviert.
Die Beispiele konzentrieren sich auf Aufgaben zur Diagrammanpassung, wie das Hinzufügen eines Diagramms zu einer Folie, das Anpassen von Serien‑ und Beschriftungseinstellungen, das Ersetzen der Standard‑Diagrammdaten durch benutzerdefinierte Kategorien und Werte sowie das Speichern der aktualisierten Präsentation.
Optionen für sekundäre Plot‑Optionen bei Pie of Pie und Bar of Pie Diagrammen
Aspose.Slides für Android via Java unterstützt sekundäre Plot‑Optionen für Pie of Pie‑ und Bar of Pie‑Diagramme. Diese Optionen steuern die Größe des sekundären Plots und wie Datenpunkte zwischen den beiden Plots aufgeteilt werden.
Das folgende Beispiel erstellt ein Pie of Pie‑Diagramm in einer neuen Präsentation und zeigt die Datenpunktwerte als Beschriftungen an. Die setSecondPieSize‑Methode setzt die Größe des sekundären Plots auf 149 % des Hauptplots. setPieSplitBy wählt eine prozentbasierte Aufteilung, und setPieSplitPosition legt den Schwellenwert auf 53 % fest.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.PieOfPie, 50, 50, 500, 400);
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// Werte anzeigen und den sekundären Plot konfigurieren.
series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
IChartSeriesGroup seriesGroup = series.getParentSeriesGroup();
seriesGroup.setSecondPieSize(149);
seriesGroup.setPieSplitBy(PieSplitType.ByPercentage);
seriesGroup.setPieSplitPosition(53);
presentation.save("pie_of_pie.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Kategorien für das sekundäre Diagramm auswählen
Verwenden Sie benutzerdefinierte Aufteilung, wenn Sie bestimmte Kategorien im sekundären Plot gruppieren möchten, unabhängig von ihren prozentualen Werten. Zum Beispiel könnte ein Verkaufsbericht Online und Events zusammen anzeigen, damit die Leser diese beiden Kanäle vergleichen können, obwohl sie 35 % bzw. 10 % des Gesamtumsatzes ausmachen.
Rufen Sie setPieSplitBy mit PieSplitType.Custom auf und wählen Sie die Punkte über getPieSplitCustomPoints. Die add‑Methode der Sammlung akzeptiert einen nullbasierten Index in der Serie; verwenden Sie addItem zum Hinzufügen eines Datenpunktobjekts. In diesem Beispiel wählt Index 1 Online aus, und der Punkt an Index 3 wählt Events aus. Partners wird ebenfalls vorübergehend hinzugefügt und anschließend mit removeItem entfernt.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.PieOfPie, 50, 50, 600, 200);
// Ersetzen Sie die Standarddaten durch Verkäufe nach Kanal.
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
String[] categoryNames = { "Retail", "Online", "Partners", "Events" };
int[] values = { 40, 35, 15, 10 };
IChartDataCell seriesNameCell = workbook.getCell(0, 0, 1, "Sales");
IChartSeries series = chart.getChartData().getSeries().add(seriesNameCell, chart.getType());
for (int i = 0; i < categoryNames.length; i++) {
IChartDataCell categoryCell = workbook.getCell(0, i + 1, 0, categoryNames[i]);
chart.getChartData().getCategories().add(categoryCell);
IChartDataCell valueCell = workbook.getCell(0, i + 1, 1, values[i]);
series.getDataPoints().addDataPointForPieSeries(valueCell);
}
series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
IChartSeriesGroup seriesGroup = series.getParentSeriesGroup();
seriesGroup.setPieSplitBy(PieSplitType.Custom);
seriesGroup.setColorVaried(true);
// Wählen Sie Online anhand seines nullbasierten Index und Events anhand seines Datenpunktobjekts aus.
seriesGroup.getPieSplitCustomPoints().add(1);
seriesGroup.getPieSplitCustomPoints().addItem(series.getDataPoints().get_Item(3));
// Schließen Sie Partners von der Auswahl aus, ohne seine Quelldaten zu löschen.
seriesGroup.getPieSplitCustomPoints().add(2);
seriesGroup.getPieSplitCustomPoints().removeItem(series.getDataPoints().get_Item(2));
presentation.save("pie_of_pie_custom.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Online (35) und Events (10) erscheinen als separate Scheiben im sekundären Plot. Im primären Plot werden sie durch eine kombinierte Scheibe mit dem Wert 45 dargestellt, zusammen mit Retail (40) und Partners (15). Das Entfernen von Partners aus der benutzerdefinierten Auswahl lässt ihn im primären Plot erhalten; die Kategorie oder ihr Wert wird nicht aus den Quelldaten des Diagramms entfernt.
Das folgende Bild zeigt die gespeicherte Präsentation in PowerPoint:

Automatische Farben für Kreisdiagramm‑Scheiben festlegen
Aspose.Slides für Android via Java kann automatisch unterschiedliche Farben für die Scheiben eines Kreisdiagramms zuweisen. Das folgende Beispiel erstellt ein Kreisdiagramm mit zentriertem Titel und ersetzt die Standarddaten durch drei Quartalskategorien und deren Werte. Die setShowValue‑Methode zeigt die Werte 20, 50 und 30 als Beschriftungen an, während setColorVaried eine unterschiedliche Farbe für jede Scheibe aktiviert.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400);
// Zentrierten Diagrammtitel hinzufügen.
chart.getChartTitle().addTextFrameForOverriding("Sample Title");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
chart.getChartTitle().setHeight(20);
chart.setTitle(true);
// Standarddaten mithilfe des ersten Arbeitsblatts ersetzen.
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
int worksheetIndex = 0;
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
String[] categoryNames = { "First Qtr", "2nd Qtr", "3rd Qtr" };
int[] values = { 20, 50, 30 };
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, 0, 1, "Series 1");
IChartSeries series = chart.getChartData().getSeries().add(seriesNameCell, chart.getType());
for (int i = 0; i < categoryNames.length; i++) {
IChartDataCell categoryCell = workbook.getCell(worksheetIndex, i + 1, 0, categoryNames[i]);
chart.getChartData().getCategories().add(categoryCell);
IChartDataCell valueCell = workbook.getCell(worksheetIndex, i + 1, 1, values[i]);
series.getDataPoints().addDataPointForPieSeries(valueCell);
}
// Werte anzeigen und den Scheiben unterschiedliche Farben zuweisen.
series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
series.getParentSeriesGroup().setColorVaried(true);
presentation.save("pie.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
Werden die Pie of Pie‑ und Bar of Pie‑Varianten unterstützt?
Ja, die Bibliothek unterstützt einen sekundären Plot für Kreisdiagramme, einschließlich der Pie of Pie‑ und Bar of Pie‑Typen.
Kann ich nur das Diagramm als Bild (z. B. PNG) exportieren?
Ja, Sie können das Diagramm selbst als Bild exportieren (z. B. PNG), ohne die gesamte Präsentation zu exportieren.