Gestisci le serie di dati del grafico nelle presentazioni su Android
Panoramica
Questo articolo descrive il ruolo di ChartSeries in Aspose.Slides, concentrandosi su come i dati sono strutturati e visualizzati all’interno delle presentazioni. questi oggetti forniscono gli elementi fondamentali che definiscono insiemi individuali di punti dati, categorie e parametri di aspetto in un grafico. Lavorando con ChartSeries, gli sviluppatori possono integrare senza problemi le fonti dati sottostanti e mantenere il pieno controllo su come le informazioni vengono visualizzate, ottenendo presentazioni dinamiche, guidate dai dati, che comunicano chiaramente approfondimenti e analisi.
Una serie è una riga o colonna di numeri tracciata in un grafico.

Imposta la sovrapposizione della serie del grafico
Con il metodo IChartSeries.getOverlap è possibile determinare quanto le barre e le colonne devono sovrapporsi in un grafico 2D (intervallo: -100‑100). Questa proprietà si applica a tutte le serie del gruppo di serie padre: è una proiezione della proprietà di gruppo appropriata. Pertanto, questa proprietà è di sola lettura.
Utilizza il metodo di scrittura getParentSeriesGroup().setOverlap() per impostare il valore di sovrapposizione desiderato.
- Crea un’istanza della classe Presentation.
- Aggiungi un grafico a colonne raggruppate su una diapositiva.
- Accedi alla prima serie del grafico.
- Accedi al
ParentSeriesGroupdella serie del grafico e imposta il valore di sovrapposizione desiderato per la serie. - Scrivi la presentazione modificata in un file PPTX.
Presentation pres = new Presentation();
try {
// Aggiunge il grafico
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400, true);
IChartSeriesCollection series = chart.getChartData().getSeries();
if (series.get_Item(0).getOverlap() == 0)
{
// Imposta la sovrapposizione della serie
series.get_Item(0).getParentSeriesGroup().setOverlap((byte)-30);
}
// Scrive il file della presentazione su disco
pres.save("SetChartSeriesOverlap_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Modifica il colore della serie
Aspose.Slides for Android via Java consente di modificare il colore di una serie in questo modo:
- Crea un’istanza della classe Presentation.
- Aggiungi un grafico sulla diapositiva.
- Accedi alla serie di cui vuoi cambiare il colore.
- Imposta il tipo di riempimento e il colore di riempimento desiderati.
- Salva la presentazione modificata.
Presentation pres = new Presentation("test.pptx");
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Pie, 50, 50, 600, 400);
IChartDataPoint 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(Color.BLUE);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Modifica il colore della categoria della serie
Aspose.Slides for Android via Java consente di modificare il colore di una categoria di serie in questo modo:
- Crea un’istanza della classe Presentation.
- Aggiungi un grafico sulla diapositiva.
- Accedi alla categoria della serie di cui vuoi cambiare il colore.
- Imposta il tipo di riempimento e il colore di riempimento desiderati.
- Salva la presentazione modificata.
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
IChartDataPoint point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0);
point.getFormat().getFill().setFillType(FillType.Solid);
point.getFormat().getFill().getSolidFillColor().setColor(Color.BLUE);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Modifica il nome della serie
Per impostazione predefinita, i nomi della legenda di un grafico corrispondono al contenuto delle celle sopra ciascuna colonna o riga di dati.
Nel nostro esempio (immagine di esempio),
- le colonne sono Series 1, Series 2, e Series 3;
- le righe sono Category 1, Category 2, Category 3, e Category 4.
Aspose.Slides for Android via Java consente di aggiornare o modificare il nome di una serie nei dati del grafico e nella legenda.
Questo codice Java mostra come modificare il nome di una serie nei dati del grafico ChartDataWorkbook:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Column3D, 50, 50, 600, 400, true);
IChartDataCell seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1);
seriesCell.setValue("New name");
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Questo codice Java mostra come modificare il nome di una serie nella sua legenda tramite Series:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Column3D, 50, 50, 600, 400, true);
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
IStringChartValue name = series.getName();
name.getAsCells().get_Item(0).setValue("New name");
} finally {
if (pres != null) pres.dispose();
}
Imposta il colore di riempimento della serie del grafico
Aspose.Slides for Android via Java consente di impostare il colore di riempimento automatico per le serie del grafico all’interno di un’area di tracciamento in questo modo:
- Crea un’istanza della classe Presentation.
- Ottieni il riferimento di una diapositiva tramite il suo indice.
- Aggiungi un grafico con dati predefiniti basati sul tipo preferito (nell’esempio sotto, abbiamo usato
ChartType.ClusteredColumn). - Accedi alla serie del grafico e imposta il colore di riempimento su Automatic.
- Salva la presentazione in un file PPTX.
Presentation pres = new Presentation();
try {
// Crea un grafico a colonne raggruppate
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 50, 600, 400);
// Imposta il formato di riempimento della serie su automatico
for (int i = 0; i < chart.getChartData().getSeries().size(); i++)
{
chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor();
}
// Scrive il file della presentazione su disco
pres.save("AutoFillSeries_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Imposta il colore di riempimento invertito per una serie del grafico
Aspose.Slides consente di impostare il colore di riempimento invertito per le serie del grafico all’interno di un’area di tracciamento in questo modo:
- Crea un’istanza della classe Presentation.
- Ottieni il riferimento di una diapositiva tramite il suo indice.
- Aggiungi un grafico con dati predefiniti basati sul tipo preferito (nell’esempio sotto, abbiamo usato
ChartType.ClusteredColumn). - Accedi alla serie del grafico e imposta il colore di riempimento su invertito.
- Salva la presentazione in un file PPTX.
Color inverColor = Color.RED;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 400, 300);
IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
// Aggiunge nuove serie e categorie
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"));
// Prende la prima serie del grafico e popola i suoi dati di serie.
IChartSeries 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));
Color 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 (pres != null) pres.dispose();
}
Imposta una serie per invertire quando il valore è negativo
Aspose.Slides consente di impostare l’inversione tramite le proprietà IChartDataPoint.InvertIfNegative e ChartDataPoint.InvertIfNegative. Quando l’inversione è impostata usando queste proprietà, il punto dati inverte i suoi colori al ricevere un valore negativo.
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400, true);
IChartSeriesCollection series = chart.getChartData().getSeries();
chart.getChartData().getSeries().clear();
IChartSeries 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 (pres != null) pres.dispose();
}
Cancella i dati di un punto specifico
Aspose.Slides for Android via Java consente di cancellare i dati dei DataPoints per una serie di grafico specifica in questo modo:
- Crea un’istanza della classe Presentation.
- Ottieni il riferimento di una diapositiva tramite il suo indice.
- Ottieni il riferimento di un grafico tramite il suo indice.
- Itera tutti i
DataPointsdel grafico e impostaXValueeYValuea null. - Cancella tutti i
DataPointsper la serie di grafico specifica. - Scrivi la presentazione modificata in un file PPTX.
Presentation pres = new Presentation("TestChart.pptx");
try {
ISlide sl = pres.getSlides().get_Item(0);
IChart chart = (IChart)sl.getShapes().get_Item(0);
for (IChartDataPoint dataPoint : chart.getChartData().getSeries().get_Item(0).getDataPoints())
{
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 (pres != null) pres.dispose();
}
Imposta la larghezza dello spazio della serie
Aspose.Slides for Android via Java consente di impostare la larghezza dello spazio di una serie tramite la proprietà GapWidth in questo modo:
- Crea un’istanza della classe Presentation.
- Accedi alla prima diapositiva.
- Aggiungi un grafico con dati predefiniti.
- Accedi a qualsiasi serie del grafico.
- Imposta la proprietà
GapWidth. - Scrivi la presentazione modificata in un file PPTX.
// Crea una presentazione vuota
// Accede alla prima diapositiva della presentazione
// Aggiunge un grafico con dati predefiniti
// Imposta l'indice del foglio dati del grafico
// Recupera il foglio di lavoro dei dati del grafico
// Aggiunge serie
// Aggiunge categorie
// Prende la seconda serie del grafico
// Popola i dati della serie
// Imposta il valore GapWidth
// Salva la presentazione su disco
Presentation pres = new Presentation();
try {
// Accesses the presentation's first slide
ISlide slide = pres.getSlides().get_Item(0);
// Adds a chart with default data
IChart chart = slide.getShapes().addChart(ChartType.StackedColumn, 0, 0, 500, 500);
// Sets the index of the chart data sheet
int defaultWorksheetIndex = 0;
// Gets the chart data worksheet
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// Adds series
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());
// Adds Categories
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"));
// Takes the second chart series
IChartSeries series = chart.getChartData().getSeries().get_Item(1);
// Populates the series data
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));
// Sets GapWidth value
series.getParentSeriesGroup().setGapWidth(50);
// Saves presentation to disk
pres.save("GapWidth_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Esiste un limite al numero di serie che un singolo grafico può contenere?
Aspose.Slides non impone un limite fisso al numero di serie che è possibile aggiungere. Il limite pratico è determinato dalla leggibilità del grafico e dalla quantità di memoria disponibile per la tua applicazione.
Cosa succede se le colonne all’interno di un gruppo sono troppo vicine o troppo distanti?
Regola l’impostazione GapWidth per quella serie (o per il suo gruppo di serie padre). Aumentare il valore allarga lo spazio tra le colonne, mentre diminuirlo le avvicina.