Gestire le serie di dati del grafico in Python
Panoramica
Questo articolo descrive il ruolo di ChartSeries in Aspose.Slides per Python, 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 soluzione di continuità le fonti dati sottostanti e mantenere il controllo totale su come le informazioni vengono visualizzate, ottenendo presentazioni dinamiche e basate sui dati che trasmettono chiaramente approfondimenti e analisi.
Una serie è una riga o colonna di numeri tracciati in un grafico.

Imposta Sovrapposizione delle Serie
La proprietà ChartSeries.overlap controlla come le barre e le colonne si sovrappongono in un grafico 2D specificando un intervallo da -100 a 100. Poiché questa proprietà è associata al gruppo di serie anziché a singole serie di grafico, è di sola lettura a livello di serie. Per configurare i valori di sovrapposizione, utilizzare la proprietà parent_series_group.overlap di lettura/scrittura, che applica la sovrapposizione specificata a tutte le serie del gruppo.
Di seguito è riportato un esempio Python che dimostra come creare una presentazione, aggiungere un grafico a colonne raggruppate, accedere alla prima serie del grafico, configurare l’impostazione di sovrapposizione e quindi salvare il risultato come file PPTX:
import aspose.slides as slides
import aspose.slides.charts as charts
series_overlap = 30
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Aggiungi un grafico a colonne raggruppate con dati predefiniti.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[0]
if series.overlap == 0:
# Imposta la sovrapposizione della serie.
series.parent_series_group.overlap = series_overlap
# Salva il file della presentazione su disco.
presentation.save("series_overlap.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Modifica il Colore di Riempimento della Serie
Aspose.Slides rende semplice la personalizzazione dei colori di riempimento delle serie di grafico, consentendo di evidenziare punti dati specifici e di creare grafici visivamente accattivanti. Ciò è realizzato tramite l’oggetto Format, che supporta vari tipi di riempimento, configurazioni di colore e altre opzioni di stile avanzate. Dopo aver aggiunto un grafico a una diapositiva e aver accesso alla serie desiderata, è sufficiente ottenere la serie e applicare il colore di riempimento appropriato. Oltre ai riempimenti solidi, è possibile utilizzare riempimenti a gradiente o a motivo per una maggiore flessibilità di design. Una volta impostati i colori secondo le proprie esigenze, salvare la presentazione per finalizzare l’aspetto aggiornato.
Il seguente esempio di codice Python mostra come cambiare il colore della prima serie:
import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw
series_color = draw.Color.blue
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Aggiungi un grafico a colonne raggruppate con dati predefiniti.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
# Imposta il colore della prima serie.
series = chart.chart_data.series[0]
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = series_color
# Salva il file della presentazione su disco.
presentation.save("series_color.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Rinomina una Serie
Aspose.Slides offre un modo semplice per modificare i nomi delle serie di grafico, facilitando l’etichettatura dei dati in modo chiaro e significativo. Accedendo alla cella del foglio di lavoro pertinente nei dati del grafico, gli sviluppatori possono personalizzare la modalità di presentazione dei dati. Questa modifica è particolarmente utile quando i nomi delle serie devono essere aggiornati o chiariti in base al contesto dei dati. Dopo aver rinominato la serie, la presentazione può essere salvata per preservare le modifiche.
Di seguito è riportato un frammento di codice Python che dimostra questo processo in azione.
import aspose.slides as slides
import aspose.slides.charts as charts
series_name = "New name"
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Aggiungi un grafico a colonne raggruppate con dati predefiniti.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
# Imposta il nome della prima serie.
series_cell = chart.chart_data.chart_data_workbook.get_cell(0, 0, 1)
series_cell.value = series_name
# Salva il file della presentazione su disco.
presentation.save("series_name.pptx", slides.export.SaveFormat.PPTX)
Il seguente codice Python mostra un modo alternativo per cambiare il nome della serie:
import aspose.slides as slides
import aspose.slides.charts as charts
series_name = "New name"
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Aggiungi un grafico a colonne raggruppate con dati predefiniti.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[0]
# Imposta il nome della prima serie.
series.name.as_cells[0].value = series_name
# Salva il file della presentazione su disco.
presentation.save("series_name.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Ottieni il Colore di Riempimento Automatico della Serie
Aspose.Slides per Python consente di ottenere il colore di riempimento automatico per le serie di grafico all’interno di un’area di tracciamento. Dopo aver creato un’istanza della classe Presentation, è possibile ottenere un riferimento alla diapositiva desiderata tramite indice, quindi aggiungere un grafico utilizzando il tipo preferito (ad esempio ChartType.CLUSTERED_COLUMN). Accedendo alle serie nel grafico, è possibile ottenere il colore di riempimento automatico.
Il codice Python qui sotto dimostra questo processo in dettaglio.
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Aggiungi un grafico a colonne raggruppate con dati predefiniti.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
for i in range(len(chart.chart_data.series)):
# Ottieni il colore di riempimento della serie.
color = chart.chart_data.series[i].get_automatic_series_color()
print(f"Series {i} color: {color.name}")
Esempio di Output:
Series 0 color: ff4f81bd
Series 1 color: ffc0504d
Series 2 color: ff9bbb59
Imposta Colori di Riempimento Invertiti per una Serie
Quando la tua serie di dati contiene sia valori positivi che negativi, colorare ogni colonna o barra allo stesso modo può rendere il grafico difficile da leggere. Aspose.Slides per Python consente di assegnare un colore di riempimento invertito — un riempimento separato applicato automaticamente ai punti dati che si trovano sotto zero — in modo che i valori negativi risaltino a colpo d’occhio. In questa sezione imparerai come abilitare questa opzione, scegliere un colore appropriato e salvare la presentazione aggiornata.
Il seguente esempio di codice dimostra l’operazione:
import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw
invert_color = draw.Color.red
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
workBook = chart.chart_data.chart_data_workbook
chart.chart_data.series.clear()
chart.chart_data.categories.clear()
# Aggiungi nuove categorie.
chart.chart_data.categories.add(workBook.get_cell(0, 1, 0, "Category 1"))
chart.chart_data.categories.add(workBook.get_cell(0, 2, 0, "Category 2"))
chart.chart_data.categories.add(workBook.get_cell(0, 3, 0, "Category 3"))
# Aggiungi una nuova serie.
series = chart.chart_data.series.add(workBook.get_cell(0, 0, 1, "Series 1"), chart.type)
# Popola i dati della serie.
series.data_points.add_data_point_for_bar_series(workBook.get_cell(0, 1, 1, -20))
series.data_points.add_data_point_for_bar_series(workBook.get_cell(0, 2, 1, 50))
series.data_points.add_data_point_for_bar_series(workBook.get_cell(0, 3, 1, -30))
# Imposta le impostazioni di colore per la serie.
series_color = series.get_automatic_series_color()
series.invert_if_negative = True
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = series_color
series.inverted_solid_fill_color.color = invert_color
presentation.save("inverted_solid_fill_color.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

È possibile invertire il colore di riempimento per un singolo punto dati anziché per l’intera serie. Basta accedere al ChartDataPoint desiderato e impostare la sua proprietà invert_if_negative su True.
Il seguente esempio di codice mostra come fare questo:
import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200, True)
chart.chart_data.series.clear()
series = series.add(chart.chart_data.chart_data_workbook.get_cell(0, "B1"), chart.type)
series.data_points.add_data_point_for_bar_series(chart.chart_data.chart_data_workbook.get_cell(0, "B2", -5))
series.data_points.add_data_point_for_bar_series(chart.chart_data.chart_data_workbook.get_cell(0, "B3", 3))
series.data_points.add_data_point_for_bar_series(chart.chart_data.chart_data_workbook.get_cell(0, "B4", -3))
series.data_points.add_data_point_for_bar_series(chart.chart_data.chart_data_workbook.get_cell(0, "B5", 1))
series.invert_if_negative = False
series.data_points[2].invert_if_negative = True
presentation.save("data_point_invert_color_if_negative.pptx", slides.export.SaveFormat.PPTX)
Cancella Dati per Punti Dati Specifici
A volte un grafico contiene valori di prova, outlier o voci obsolete che è necessario rimuovere senza ricostruire l’intera serie. Aspose.Slides per Python consente di puntare a qualsiasi punto dati tramite indice, cancellarne il contenuto e aggiornare istantaneamente il grafico in modo che i punti rimanenti si spostino e gli assi si ridimensionino automaticamente.
Il seguente esempio di codice dimostra l’operazione:
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation("test_chart.pptx") as presentation:
slide = presentation.slides[0]
chart = slide.shapes[0]
series = chart.chart_data.series[0]
for data_point in series.data_points:
data_point.x_value.as_cell.value = None
data_point.y_value.as_cell.value = None
series.data_points.clear()
presentation.save("clear_data_points.pptx", slides.export.SaveFormat.PPTX)
Imposta Larghezza del Gap della Serie
La larghezza del gap controlla la quantità di spazio vuoto tra colonne o barre adiacenti — gap più ampi evidenziano categorie individuali, mentre gap più stretti creano un aspetto più denso e compatto. Con Aspose.Slides for Python è possibile regolare finemente questo parametro per un’intera serie, ottenendo esattamente l’equilibrio visivo richiesto dalla presentazione senza modificare i dati sottostanti.
Il seguente esempio di codice mostra come impostare la larghezza del gap per una serie:
import aspose.slides as slides
import aspose.slides.charts as charts
gap_width = 30
# Crea una presentazione vuota.
with slides.Presentation() as presentation:
# Accedi alla prima diapositiva.
slide = presentation.slides[0]
# Aggiungi un grafico con dati predefiniti.
chart = slide.shapes.add_chart(charts.ChartType.STACKED_COLUMN, 20, 20, 500, 200)
# Salva la presentazione su disco.
presentation.save("default_gap_width.pptx", slides.export.SaveFormat.PPTX)
# Imposta il valore di gap_width.
series = chart.chart_data.series[0]
series.parent_series_group.gap_width = gap_width
# Salva la presentazione su disco.
presentation.save("gap_width_30.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

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 memoria disponibile per la tua applicazione.
Cosa succede se le colonne all’interno di un cluster sono troppo vicine o troppo distanti?
Regola l’impostazione gap_width per quella serie (o per il suo gruppo di serie genitore). Aumentare il valore amplia lo spazio tra le colonne, mentre diminuirlo le avvicina.