Gérer les séries de données de graphique en Python
Vue d’ensemble
Cet article décrit le rôle de ChartSeries dans Aspose.Slides pour Python, en se concentrant sur la façon dont les données sont structurées et visualisées dans les présentations. Ces objets fournissent les éléments de base qui définissent les ensembles de points de données, les catégories et les paramètres d’apparence dans un graphique. En travaillant avec ChartSeries, les développeurs peuvent intégrer de manière transparente les sources de données sous‑jacentes et garder le contrôle total sur l’affichage des informations, ce qui donne des présentations dynamiques et basées sur les données, transmettant clairement les insights et les analyses.
Une série est une ligne ou une colonne de nombres tracée dans un graphique.

Définir le chevauchement des séries
La propriété ChartSeries.overlap contrôle la façon dont les barres et les colonnes se chevauchent dans un graphique 2D en spécifiant une plage de -100 à 100. Cette propriété est associée au groupe de séries plutôt qu’à chaque série individuelle, elle est donc en lecture seule au niveau de la série. Pour configurer les valeurs de chevauchement, utilisez la propriété en lecture/écriture parent_series_group.overlap, qui applique le chevauchement spécifié à toutes les séries du groupe.
Ci‑dessous, un exemple Python qui montre comment créer une présentation, ajouter un graphique à colonnes groupées, accéder à la première série, configurer le paramètre de chevauchement, puis enregistrer le résultat au format PPTX :
import aspose.slides as slides
import aspose.slides.charts as charts
series_overlap = 30
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Ajouter un graphique à colonnes groupées avec les données par défaut.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[0]
if series.overlap == 0:
# Définir le chevauchement des séries.
series.parent_series_group.overlap = series_overlap
# Enregistrer le fichier de présentation sur le disque.
presentation.save("series_overlap.pptx", slides.export.SaveFormat.PPTX)
Le résultat :

Modifier la couleur de remplissage d’une série
Aspose.Slides facilite la personnalisation des couleurs de remplissage des séries de graphiques, vous permettant de mettre en évidence des points de données spécifiques et de créer des graphiques visuellement attractifs. Cela se fait via l’objet Format, qui prend en charge différents types de remplissage, les configurations de couleur et d’autres options de style avancées. Après avoir ajouté un graphique à une diapositive et accédé à la série souhaitée, obtenez simplement la série et appliquez la couleur de remplissage appropriée. Au‑delà des remplissages unis, vous pouvez également exploiter les remplissages en dégradé ou en motif pour plus de flexibilité de conception. Une fois les couleurs définies selon vos besoins, enregistrez la présentation pour finaliser le rendu mis à jour.
L’exemple de code Python suivant montre comment modifier la couleur de la première série :
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]
# Ajouter un graphique à colonnes groupées avec les données par défaut.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
# Définir la couleur de la première série.
series = chart.chart_data.series[0]
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = series_color
# Enregistrer le fichier de présentation sur le disque.
presentation.save("series_color.pptx", slides.export.SaveFormat.PPTX)
Le résultat :

Renommer une série
Aspose.Slides offre une méthode simple pour modifier les noms des séries de graphiques, facilitant ainsi l’étiquetage des données de manière claire et significative. En accédant à la cellule de feuille de calcul correspondante dans les données du graphique, les développeurs peuvent personnaliser la présentation des données. Cette modification est particulièrement utile lorsque les noms des séries doivent être mis à jour ou précisés selon le contexte des données. Après le renommage, la présentation peut être enregistrée pour persister les changements.
Ci‑dessous, un extrait de code Python illustrant ce processus en action.
import aspose.slides as slides
import aspose.slides.charts as charts
series_name = "New name"
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Ajouter un graphique à colonnes groupées avec les données par défaut.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
# Définir le nom de la première série.
series_cell = chart.chart_data.chart_data_workbook.get_cell(0, 0, 1)
series_cell.value = series_name
# Enregistrer le fichier de présentation sur le disque.
presentation.save("series_name.pptx", slides.export.SaveFormat.PPTX)
L’exemple de code Python suivant montre une façon alternative de changer le nom de la série :
import aspose.slides as slides
import aspose.slides.charts as charts
series_name = "New name"
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Ajouter un graphique à colonnes groupées avec les données par défaut.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
series = chart.chart_data.series[0]
# Définir le nom de la première série.
series.name.as_cells[0].value = series_name
# Enregistrer le fichier de présentation sur le disque.
presentation.save("series_name.pptx", slides.export.SaveFormat.PPTX)
Le résultat :

Obtenir la couleur de remplissage automatique d’une série
Aspose.Slides pour Python vous permet d’obtenir la couleur de remplissage automatique d’une série de graphique dans la zone de tracé. Après avoir créé une instance de la classe Presentation, vous pouvez obtenir une référence à la diapositive souhaitée par index, puis ajouter un graphique du type souhaité (par exemple ChartType.CLUSTERED_COLUMN). En accédant aux séries du graphique, vous pouvez récupérer la couleur de remplissage automatique.
Le code Python ci‑dessous détaille ce processus.
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Ajouter un graphique à colonnes groupées avec les données par défaut.
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
for i in range(len(chart.chart_data.series)):
# Obtenir la couleur de remplissage de la série.
color = chart.chart_data.series[i].get_automatic_series_color()
print(f"Series {i} color: {color.name}")
Exemple de sortie :
Series 0 color: ff4f81bd
Series 1 color: ffc0504d
Series 2 color: ff9bbb59
Définir l’inversion des couleurs de remplissage pour une série
Lorsque votre série de données contient à la fois des valeurs positives et négatives, colorer chaque colonne ou barre de la même façon peut rendre le graphique difficile à lire. Aspose.Slides pour Python vous permet d’attribuer une couleur de remplissage inversée — un remplissage distinct appliqué automatiquement aux points de données situés en dessous de zéro — de sorte que les valeurs négatives ressortent immédiatement. Dans cette section, vous apprendrez comment activer cette option, choisir une couleur appropriée et enregistrer la présentation mise à jour.
L’exemple de code suivant montre l’opération :
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()
# Ajouter de nouvelles catégories.
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"))
# Ajouter une nouvelle série.
series = chart.chart_data.series.add(workBook.get_cell(0, 0, 1, "Series 1"), chart.type)
# Remplir les données de la série.
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))
# Définir les paramètres de couleur pour la série.
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)
Le résultat :

Vous pouvez inverser la couleur de remplissage pour un seul point de données plutôt que pour toute la série. Accédez simplement au ChartDataPoint souhaité et définissez sa propriété invert_if_negative sur True.
L’exemple de code suivant montre comment procéder :
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)
Effacer les données pour des points de données spécifiques
Parfois, un graphique contient des valeurs de test, des valeurs aberrantes ou des entrées obsolètes que vous devez supprimer sans reconstruire la série entière. Aspose.Slides pour Python vous permet de cibler n’importe quel point de données par index, d’en effacer le contenu et de rafraîchir instantanément le tracé afin que les points restants se décalent et que les axes se redimensionnent automatiquement.
L’exemple de code suivant illustre l’opération :
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)
Définir la largeur de l’écart pour une série
La largeur de l’écart contrôle la quantité d’espace vide entre les colonnes ou les barres adjacentes — des écarts plus larges mettent en valeur les catégories individuelles, tandis que des écarts plus étroits créent un aspect plus dense et compact. Avec Aspose.Slides pour Python, vous pouvez ajuster ce paramètre pour une série entière, obtenant ainsi l’équilibre visuel requis dans votre présentation sans modifier les données sous‑jacentes.
L’exemple de code suivant montre comment définir la largeur de l’écart pour une série :
import aspose.slides as slides
import aspose.slides.charts as charts
gap_width = 30
# Créer une présentation vide.
with slides.Presentation() as presentation:
# Accéder à la première diapositive.
slide = presentation.slides[0]
# Ajouter un graphique avec les données par défaut.
chart = slide.shapes.add_chart(charts.ChartType.STACKED_COLUMN, 20, 20, 500, 200)
# Enregistrer la présentation sur le disque.
presentation.save("default_gap_width.pptx", slides.export.SaveFormat.PPTX)
# Définir la valeur de gap_width.
series = chart.chart_data.series[0]
series.parent_series_group.gap_width = gap_width
# Enregistrer la présentation sur le disque.
presentation.save("gap_width_30.pptx", slides.export.SaveFormat.PPTX)
Le résultat :

FAQ
Y a‑t‑il une limite au nombre de séries qu’un graphique peut contenir ?
Aspose.Slides n’impose aucun plafond fixe au nombre de séries que vous ajoutez. La limite pratique dépend de la lisibilité du graphique et de la mémoire disponible pour votre application.
Que faire si les colonnes d’un groupe sont trop proches ou trop éloignées ?
Ajustez le paramètre gap_width pour cette série (ou son groupe parent). Augmenter la valeur élargit l’espace entre les colonnes, tandis que la diminuer les rapproche.