Créer des graphiques dans des présentations PowerPoint en Python

Les graphiques sont utilisés pour la représentation graphique des données, ce qui facilite l’analyse. Par conséquent, MS PowerPoint prend en charge une gamme de graphiques pour visualiser les données de différentes manières. Parmi tous, les graphiques les plus couramment utilisés incluent les graphiques à secteurs, les graphiques linéaires, les graphiques à barres, les histogrammes, les graphiques boursiers, etc. Dans cet article, vous apprendrez à créer ces graphiques dans PowerPoint PPT ou PPTX en Python.

Bibliothèque Python pour créer des graphiques dans PowerPoint PPT

Pour créer des graphiques dans PowerPoint PPT/PPTX, nous utiliserons Aspose.Slides for Python via .NET. Il s’agit d’une bibliothèque riche en fonctionnalités qui fournit un package complet pour créer et manipuler des présentations PowerPoint. Vous pouvez l’installer à partir de PyPI à l’aide de la commande pip suivante.

> pip install aspose.slides

Aspose.Slides prend en charge une variété de graphiques qui peuvent être ajoutés dynamiquement aux présentations. Dans les sections suivantes, nous montrerons comment créer certains types de graphiques courants.

Créer un graphique à colonnes dans PowerPoint PPT en Python

Dans cette section, vous apprendrez à créer un histogramme dans une présentation PowerPoint en Python. Voici les étapes pour effectuer cette opération.

  • Tout d’abord, créez une instance de la classe Presentation.
  • Obtenez la référence de la diapositive à partir de Presentations.slides dans un objet.
  • Ajoutez un histogramme groupé avec des données par défaut à l’aide de la méthode Slide.shapes.addchart().
  • Définissez le titre du graphique et d’autres propriétés telles que la mise en forme du texte.
  • Accédez au classeur de données de graphique dans un objet à l’aide de la méthode Chart.chartdata.chartdataworkbook().
  • Effacez toutes les séries et catégories par défaut des données du graphique à l’aide des méthodes Chart.chartdata.series.clear() et Chart.chartdata.categories.clear() respectivement.
  • Ajouter de nouvelles séries et catégories.
  • Accédez à chaque série de graphiques dans un objet et ajoutez-y des points de données.
  • Ajoutez une couleur de remplissage pour les séries de graphiques et définissez des étiquettes.
  • Enfin, enregistrez la présentation à l’aide de la méthode Presentation.save(string, SaveFormat).

L’exemple de code suivant montre comment créer un histogramme dans PowerPoint PPT en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as pres:

    # Access first slide
    sld = pres.slides[0]

    # Add chart with default data
    chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)

    # Set chart title
    chart.chart_title.add_text_frame_for_overriding("Sample Title")
    chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
    chart.chart_title.height = 20
    chart.has_title = True

    # Set first series to show values
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Set the index of chart data sheet
    defaultWorksheetIndex = 0

    # Get the chart data worksheet
    fact = chart.chart_data.chart_data_workbook

    # Delete default generated series and categories
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    s = len(chart.chart_data.series)
    s = len(chart.chart_data.categories)

    # Add new series
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.type)
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.type)

    # Add new categories
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"))

    # Take first chart series
    series = chart.chart_data.series[0]

    # Populate series data
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))

    # Set fill color for series
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.blue

    # Take second chart series
    series = chart.chart_data.series[1]

    # Populate series data
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 2, 30))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 2, 10))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 2, 60))

    # Set fill color for series
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.orange

    # First label will show category name
    lbl = series.data_points[0].label
    lbl.data_label_format.show_category_name = True

    lbl = series.data_points[1].label
    lbl.data_label_format.show_series_name = True

    # Show value for third label
    lbl = series.data_points[2].label
    lbl.data_label_format.show_value = True
    lbl.data_label_format.show_series_name = True
    lbl.data_label_format.separator = "/"

    # Save presentation
    pres.save("column-chart.pptx", slides.export.SaveFormat.PPTX)

Voici la capture d’écran de l’histogramme résultant.

créer un graphique à colonnes dans powerpoint en Python

Créer un diagramme de dispersion dans PowerPoint PPT en Python

Voici les étapes pour créer un nuage de points dans PowerPoint PPT en Python.

  • Tout d’abord, créez une instance de la classe Presentation.
  • Obtenez la référence de la diapositive à partir de Presentations.slides dans un objet.
  • Ajoutez un nuage de points avec les données par défaut à l’aide de la méthode Slide.shapes.addchart().
  • Accédez au classeur de données de graphique dans un objet à l’aide de la méthode Chart.chartdata.chartdataworkbook().
  • Ajoutez une nouvelle série aux données du graphique.
  • Accédez à chaque série dans un objet et ajoutez des points de données à la série.
  • Définissez le marqueur de la série.
  • Enfin, enregistrez la présentation à l’aide de la méthode Presentation.save(string, SaveFormat).

L’exemple de code suivant montre comment créer un graphique en nuage de points dans PowerPoint PPTX en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as pres:

    # Access first slide    
    slide = pres.slides[0]

    # Create the default chart
    chart = slide.shapes.add_chart(slides.charts.ChartType.SCATTER_WITH_SMOOTH_LINES, 0, 0, 400, 400)

    # Get the default chart data worksheet index
    defaultWorksheetIndex = 0

    # Get the chart data worksheet
    fact = chart.chart_data.chart_data_workbook

    # Delete demo series
    chart.chart_data.series.clear()

    # Add new series
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.type)
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.type)

    # Take first chart series
    series = chart.chart_data.series[0]

    # Add new point (1:3)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 1), fact.get_cell(defaultWorksheetIndex, 2, 2, 3))

    # Add new point (2:10)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 2), fact.get_cell(defaultWorksheetIndex, 3, 2, 10))

    # Edit the type of series
    series.type = slides.charts.ChartType.SCATTER_WITH_STRAIGHT_LINES_AND_MARKERS

    # Change the chart series marker
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.STAR

    # Take second chart series
    series = chart.chart_data.series[1]

    # Add new point (5:2)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 2, 3, 5), fact.get_cell(defaultWorksheetIndex, 2, 4, 2))

    # Add new point (3:1)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 3, 3, 3), fact.get_cell(defaultWorksheetIndex, 3, 4, 1))

    # Add new point (2:2)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 4, 3, 2), fact.get_cell(defaultWorksheetIndex, 4, 4, 2))

    # Add new point (5:1)
    series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 5, 3, 5), fact.get_cell(defaultWorksheetIndex, 5, 4, 1))

    # Change the chart series marker
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.CIRCLE

    # Save presentation
    pres.save("scatter-chart.pptx", slides.export.SaveFormat.PPTX)

La capture d’écran suivante montre le nuage de points résultant.

créer un nuage de points dans powerpoint en Python

Créer un graphique à secteurs dans PowerPoint PPT en Python

Voici les étapes pour créer un graphique à secteurs dans un PPT PowerPoint en Python.

  • Tout d’abord, créez une instance de la classe Presentation.
  • Obtenez la référence de la diapositive à partir de Presentations.slides dans un objet.
  • Ajoutez un graphique à secteurs avec des données par défaut à l’aide de la méthode Slide.shapes.addchart().
  • Définissez le titre du graphique et d’autres propriétés telles que la mise en forme du texte.
  • Définissez la visibilité des valeurs.
  • Effacez toutes les séries et catégories par défaut des données du graphique à l’aide des méthodes Chart.chartdata.series.clear() et Chart.chartdata.categories.clear() respectivement.
  • Accédez au classeur de données de graphique dans un objet à l’aide de la méthode Chart.chartdata.chartdataworkbook().
  • Ajoutez de nouvelles catégories aux données du graphique.
  • Ajoutez une nouvelle série aux données du graphique.
  • Accédez à chaque série dans un objet et ajoutez des points de données à la série.
  • Accédez à chaque point de données et définissez son formatage.
  • Appliquez la mise en forme aux étiquettes de données dans les points de données.
  • Définissez les lignes de repère et les angles de rotation.
  • Enfin, enregistrez la présentation à l’aide de la méthode Presentation.save(string, SaveFormat).

L’exemple de code suivant montre comment créer un graphique à secteurs dans PowerPoint PPTX en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as presentation:

    # Access first slide
    slide = presentation.slides[0]

    # Add chart with default data
    chart = slide.shapes.add_chart(slides.charts.ChartType.PIE, 100, 100, 400, 400)

    # Set chart title
    chart.chart_title.add_text_frame_for_overriding("Sample Title")
    chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
    chart.chart_title.height = 20
    chart.has_title = True

    # Set first series to show values
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Set the index of chart data sheet
    defaultWorksheetIndex = 0

    # Get the chart data worksheet
    fact = chart.chart_data.chart_data_workbook

    # Delete default generated series and categories
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Add new categories
    chart.chart_data.categories.add(fact.get_cell(0, 1, 0, "First Qtr"))
    chart.chart_data.categories.add(fact.get_cell(0, 2, 0, "2nd Qtr"))
    chart.chart_data.categories.add(fact.get_cell(0, 3, 0, "3rd Qtr"))

    # Add new series
    series = chart.chart_data.series.add(fact.get_cell(0, 0, 1, "Series 1"), chart.type)

    # Populate series data
    series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
    series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
    series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))

    # Add new points and set sector color
    chart.chart_data.series_groups[0].is_color_varied = True

    point = series.data_points[0]
    point.format.fill.fill_type = slides.FillType.SOLID
    point.format.fill.solid_fill_color.color = drawing.Color.orange

    # Set sector border
    point.format.line.fill_format.fill_type = slides.FillType.SOLID
    point.format.line.fill_format.solid_fill_color.color = drawing.Color.gray
    point.format.line.width = 3.0
    # point.format.line.style = slides.LineStyle.THIN_THICK
    # point.format.line.dash_style = slides.LineDashStyle.DASH_DOT

    point1 = series.data_points[1]
    point1.format.fill.fill_type = slides.FillType.SOLID
    point1.format.fill.solid_fill_color.color = drawing.Color.blue_violet

    # Set sector border
    point1.format.line.fill_format.fill_type = slides.FillType.SOLID
    point1.format.line.fill_format.solid_fill_color.color = drawing.Color.blue
    point1.format.line.width = 3.0
    # point1.format.line.style = slides.LineStyle.SINGLE
    # point1.format.line.dash_style = slides.LineDashStyle.LARGE_DASH_DOT

    point2 = series.data_points[2]
    point2.format.fill.fill_type = slides.FillType.SOLID
    point2.format.fill.solid_fill_color.color = drawing.Color.yellow_green

    # Set sector border
    point2.format.line.fill_format.fill_type = slides.FillType.SOLID
    point2.format.line.fill_format.solid_fill_color.color = drawing.Color.red
    point2.format.line.width = 2.0
    # point2.format.line.style = slides.LineStyle.THIN_THIN
    # point2.format.line.dash_style = slides.LineDashStyle.LARGE_DASH_DOT_DOT

    # Create custom labels for each of categories for new series
    lbl1 = series.data_points[0].label

    # lbl.show_category_name = True
    lbl1.data_label_format.show_value = True

    lbl2 = series.data_points[1].label
    lbl2.data_label_format.show_value = True
    lbl2.data_label_format.show_legend_key = True
    lbl2.data_label_format.show_percentage = True

    lbl3 = series.data_points[2].label
    lbl3.data_label_format.show_series_name = True
    lbl3.data_label_format.show_percentage = True

    # Show leader lines for chart
    # series.labels.default_data_label_format.show_leader_lines = True

    # Set rotation angle for pie chart sectors
    chart.chart_data.series_groups[0].first_slice_angle = 180

    # Save presentation
    presentation.save("pie-chart.pptx", slides.export.SaveFormat.PPTX)

Voici la capture d’écran du graphique à secteurs généré.

créer un graphique à secteurs dans powerpoint en Python

Ajouter un graphique d’histogramme dans PowerPoint PPTX en Python

Voici les étapes pour créer un histogramme dans PowerPoint PPT en utilisant Aspose.Slides for Python.

  • Tout d’abord, créez une instance de la classe Presentation.
  • Obtenez la référence de la diapositive à partir de Presentations.slides dans un objet.
  • Ajoutez un graphique Histogramme avec les données par défaut à l’aide de la méthode Slide.shapes.addchart().
  • Effacez les séries et catégories par défaut.
  • Accédez au classeur de données de graphique dans un objet à l’aide de la méthode Chart.chartdata.chartdataworkbook().
  • Ajoutez une nouvelle série aux données du graphique.
  • Accédez à chaque série dans un objet et ajoutez des points de données à la série.
  • Définissez le type d’agrégation de l’axe du graphique.
  • Enfin, enregistrez la présentation à l’aide de la méthode Presentation.save(string, SaveFormat).

L’exemple de code suivant montre comment créer un graphique d’histogramme dans PPTX en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as pres:

    # Add chart
    chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.HISTOGRAM, 50, 50, 500, 400)

    # Clear default categories and series
    chart.chart_data.categories.clear()
    chart.chart_data.series.clear()

    # Access workbook
    wb = chart.chart_data.chart_data_workbook

    wb.clear(0)

    # Add data points to series
    series = chart.chart_data.series.add(slides.charts.ChartType.HISTOGRAM)
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A1", 15))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A2", -41))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A3", 16))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A4", 10))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A5", -23))
    series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A6", 16))

    # Set aggregation type
    chart.axes.horizontal_axis.aggregation_type = slides.charts.AxisAggregationType.AUTOMATIC

    # Save presentation
    pres.save("histogram-chart.pptx", slides.export.SaveFormat.PPTX)

Voici la capture d’écran du graphique d’histogramme créé.

créer un graphique d'histogramme dans powerpoint en Python

Créer un graphique boursier dans PowerPoint à l’aide de Python

Les graphiques boursiers font également partie des types de graphiques couramment utilisés dans les présentations PowerPoint. Voici les étapes pour créer un graphique boursier dans un PPT en Python.

  • Tout d’abord, créez une instance de la classe Presentation.
  • Obtenez la référence de la diapositive à partir de Presentations.slides dans un objet.
  • Ajoutez un graphique Open High Low Close avec des données par défaut à l’aide de la méthode Slide.shapes.addchart().
  • Effacez les séries et catégories par défaut.
  • Accédez au classeur de données de graphique dans un objet à l’aide de la méthode Chart.chartdata.chartdataworkbook().
  • Ajoutez de nouvelles séries et catégories au graphique.
  • Accédez à chaque série de graphiques et ajoutez des points de données.
  • Spécifiez le format Hi Low Lines.
  • Enfin, enregistrez la présentation à l’aide de la méthode Presentation.save(string, SaveFormat).

L’exemple de code suivant montre comment ajouter un graphique boursier à PowerPoint PPTX en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation (or load existing one) 
with slides.Presentation() as pres:

    # Add chart
    chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.OPEN_HIGH_LOW_CLOSE, 50, 50, 600, 400, False)

    # Clear default series and categories
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Access workbook
    wb = chart.chart_data.chart_data_workbook

    # Add categories
    chart.chart_data.categories.add(wb.get_cell(0, 1, 0, "A"))
    chart.chart_data.categories.add(wb.get_cell(0, 2, 0, "B"))
    chart.chart_data.categories.add(wb.get_cell(0, 3, 0, "C"))

    # Add series
    chart.chart_data.series.add(wb.get_cell(0, 0, 1, "Open"), chart.type)
    chart.chart_data.series.add(wb.get_cell(0, 0, 2, "High"), chart.type)
    chart.chart_data.series.add(wb.get_cell(0, 0, 3, "Low"), chart.type)
    chart.chart_data.series.add(wb.get_cell(0, 0, 4, "Close"), chart.type)

    # Add data points
    series = chart.chart_data.series[0]

    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 1, 72))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 1, 25))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 1, 38))

    series = chart.chart_data.series[1]
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 2, 172))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 2, 57))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 2, 57))

    series = chart.chart_data.series[2]
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 3, 12))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 3, 12))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 3, 13))

    series = chart.chart_data.series[3]
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 4, 25))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 4, 38))
    series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 4, 50))

    chart.chart_data.series_groups[0].up_down_bars.has_up_down_bars = True
    chart.chart_data.series_groups[0].hi_low_lines_format.line.fill_format.fill_type = slides.FillType.SOLID

    # Set series fill formatting
    for ser in chart.chart_data.series:
        ser.format.line.fill_format.fill_type = slides.FillType.NO_FILL

    # Save presentation
    pres.save("stock-chart.pptx", slides.export.SaveFormat.PPTX)

Voici la capture d’écran du graphique boursier créé.

créer un graphique boursier dans powerpoint en Python

En savoir plus sur les graphiques

Il existe de nombreux autres graphiques que vous pouvez ajouter aux présentations PowerPoint à l’aide d’Aspose.Slides for Python. Pour en savoir plus sur les types de graphiques pris en charge, vous pouvez consulter cet article de documentation.

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitation d’évaluation.

Conclusion

Dans cet article, vous avez appris à créer des graphiques dans PowerPoint PPT ou PPTX en Python. Nous avons parcouru les étapes et les exemples de code pour ajouter des histogrammes, des nuages de points, des camemberts, des histogrammes et des graphiques boursiers. Vous pouvez en savoir plus sur Aspose.Slides for Python en utilisant documentation. Si vous avez des questions ou des requêtes, faites-le nous savoir via notre forum.

Voir également