Skapa diagram i PowerPoint-presentationer i Python

Diagram används för den grafiska representationen av data, vilket gör analysen enklare. Därför stöder MS PowerPoint en rad diagram för att visualisera data på olika sätt. Bland alla de mest använda diagrammen inkluderar cirkeldiagram, linjediagram, stapeldiagram, histogram, aktiediagram, etc. I den här artikeln kommer du att lära dig hur du skapar dessa diagram i PowerPoint PPT eller PPTX i Python.

Python-bibliotek för att skapa diagram i PowerPoint PPT

För att skapa diagram i PowerPoint PPT/PPTX kommer vi att använda Aspose.Slides för Python via .NET. Det är ett funktionsrikt bibliotek som ger ett komplett paket för att skapa och manipulera PowerPoint-presentationer. Du kan installera det från PyPI med följande pip-kommando.

> pip install aspose.slides

Aspose.Slides stöder en mängd olika diagram som kan läggas till i presentationerna dynamiskt. I följande avsnitt kommer vi att visa hur man skapar några populära typer av diagram.

Skapa kolumndiagram i PowerPoint PPT i Python

I det här avsnittet kommer du att lära dig hur du skapar ett kolumndiagram i en PowerPoint-presentation i Python. Följande är stegen för att utföra denna operation.

  • Skapa först en instans av klassen Presentation.
  • Få referensen till bilden från Presentations.slides i ett objekt.
  • Lägg till ett Clustered Column-diagram med standarddata med Slide.shapes.addchart()-metoden.
  • Ställ in diagramtitel och andra egenskaper som textformatering.
  • Få åtkomst till diagramdataarbetsboken till ett objekt med metoden Chart.chartdata.chartdataworkbook().
  • Rensa alla standardserier och kategorier från diagramdata med metoderna Chart.chartdata.series.clear() respektive Chart.chartdata.categories.clear().
  • Lägg till nya serier och kategorier.
  • Få åtkomst till varje diagramserie till ett objekt och lägg till datapunkter till det.
  • Lägg till fyllningsfärg för diagramserier och ställ in etiketter.
  • Slutligen sparar du presentationen med metoden Presentation.save(string, SaveFormat).

Följande kodexempel visar hur man skapar ett kolumndiagram i PowerPoint PPT i Python.

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

# Skapa presentation (eller ladda en befintlig) 
with slides.Presentation() as pres:

    # Få tillgång till första bilden
    sld = pres.slides[0]

    # Lägg till diagram med standarddata
    chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)

    # Ange diagramtitel
    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

    # Ställ in första serien för att visa värden
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Ställ in index för diagramdatabladet
    defaultWorksheetIndex = 0

    # Skaffa arbetsbladet för diagramdata
    fact = chart.chart_data.chart_data_workbook

    # Ta bort standardgenererade serier och kategorier
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    s = len(chart.chart_data.series)
    s = len(chart.chart_data.categories)

    # Lägg till nya serier
    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)

    # Lägg till nya kategorier
    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"))

    # Ta första diagramserien
    series = chart.chart_data.series[0]

    # Fyll i seriedata
    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))

    # Ställ in fyllningsfärg för serier
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.blue

    # Ta den andra diagramserien
    series = chart.chart_data.series[1]

    # Fyll i seriedata
    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))

    # Ställ in fyllningsfärg för serier
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.orange

    # Den första etiketten visar kategorinamnet
    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

    # Visa värde för tredje etikett
    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 = "/"

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

Följande är skärmdumpen av det resulterande kolumndiagrammet.

skapa kolumndiagram i powerpoint i Python

Skapa spridningsdiagram i PowerPoint PPT i Python

Följande är stegen för att skapa ett punktdiagram i PowerPoint PPT i Python.

  • Skapa först en instans av klassen Presentation.
  • Få referensen till bilden från Presentations.slides i ett objekt.
  • Lägg till ett spridningsdiagram med standarddata med metoden Slide.shapes.addchart().
  • Få åtkomst till diagramdataarbetsboken till ett objekt med metoden Chart.chartdata.chartdataworkbook().
  • Lägg till nya serier till diagramdata.
  • Få åtkomst till varje serie till ett objekt och lägg till datapunkter i serien.
  • Ställ in markören för serien.
  • Slutligen sparar du presentationen med metoden Presentation.save(string, SaveFormat).

Följande kodexempel visar hur man skapar ett punktdiagram i PowerPoint PPTX i Python.

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

# Skapa presentation (eller ladda en befintlig) 
with slides.Presentation() as pres:

    # Få tillgång till första bilden    
    slide = pres.slides[0]

    # Skapa standarddiagrammet
    chart = slide.shapes.add_chart(slides.charts.ChartType.SCATTER_WITH_SMOOTH_LINES, 0, 0, 400, 400)

    # Hämta standarddiagrammets kalkylbladsindex
    defaultWorksheetIndex = 0

    # Skaffa arbetsbladet för diagramdata
    fact = chart.chart_data.chart_data_workbook

    # Ta bort demoserier
    chart.chart_data.series.clear()

    # Lägg till nya serier
    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)

    # Ta första diagramserien
    series = chart.chart_data.series[0]

    # Lägg till ny punkt (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))

    # Lägg till ny punkt (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))

    # Redigera typen av serie
    series.type = slides.charts.ChartType.SCATTER_WITH_STRAIGHT_LINES_AND_MARKERS

    # Ändra diagramseriemarkören
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.STAR

    # Ta den andra diagramserien
    series = chart.chart_data.series[1]

    # Lägg till ny punkt (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))

    # Lägg till ny punkt (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))

    # Lägg till ny punkt (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))

    # Lägg till ny punkt (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))

    # Ändra diagramseriemarkören
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.CIRCLE

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

Följande skärmdump visar det resulterande spridningsdiagrammet.

skapa spridningsdiagram i powerpoint i Python

Skapa cirkeldiagram i PowerPoint PPT i Python

Följande är stegen för att skapa ett cirkeldiagram i en PowerPoint PPT i Python.

  • Skapa först en instans av klassen Presentation.
  • Få referensen till bilden från Presentations.slides i ett objekt.
  • Lägg till ett cirkeldiagram med standarddata med metoden Slide.shapes.addchart().
  • Ställ in diagramtitel och andra egenskaper som textformatering.
  • Ställ in synlighet för värdena.
  • Rensa alla standardserier och kategorier från diagramdata med metoderna Chart.chartdata.series.clear() respektive Chart.chartdata.categories.clear().
  • Få åtkomst till diagramdataarbetsboken till ett objekt med metoden Chart.chartdata.chartdataworkbook().
  • Lägg till nya kategorier till diagramdata.
  • Lägg till nya serier till diagramdata.
  • Få åtkomst till varje serie till ett objekt och lägg till datapunkter i serien.
  • Gå till varje datapunkt och ställ in dess formatering.
  • Tillämpa formatering på dataetiketter i datapunkterna.
  • Ställ in ledarlinjer och rotationsvinklar.
  • Slutligen sparar du presentationen med metoden Presentation.save(string, SaveFormat).

Följande kodexempel visar hur man skapar ett cirkeldiagram i PowerPoint PPTX i Python.

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

# Skapa presentation (eller ladda en befintlig) 
with slides.Presentation() as presentation:

    # Få tillgång till första bilden
    slide = presentation.slides[0]

    # Lägg till diagram med standarddata
    chart = slide.shapes.add_chart(slides.charts.ChartType.PIE, 100, 100, 400, 400)

    # Ange diagramtitel
    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

    # Ställ in första serien för att visa värden
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Ställ in index för diagramdatabladet
    defaultWorksheetIndex = 0

    # Skaffa arbetsbladet för diagramdata
    fact = chart.chart_data.chart_data_workbook

    # Ta bort standardgenererade serier och kategorier
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Lägg till nya kategorier
    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"))

    # Lägg till nya serier
    series = chart.chart_data.series.add(fact.get_cell(0, 0, 1, "Series 1"), chart.type)

    # Fyll i seriedata
    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))

    # Lägg till nya punkter och ställ in sektorfärg
    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

    # Ställ in sektorgräns
    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

    # Ställ in sektorgräns
    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

    # Ställ in sektorgräns
    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

    # Skapa anpassade etiketter för varje kategori för nya serier
    lbl1 = series.data_points[0].label

    # lbl.show_category_name = Sant
    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

    # Visa ledarlinjer för diagram
    # series.labels.default_data_label_format.show_leader_lines = Sant

    # Ställ in rotationsvinkel för cirkeldiagramsektorer
    chart.chart_data.series_groups[0].first_slice_angle = 180

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

Följande är skärmdumpen av det genererade cirkeldiagrammet.

skapa cirkeldiagram i powerpoint i Python

Lägg till histogramdiagram i PowerPoint PPTX i Python

Följande är stegen för att skapa ett histogramdiagram i PowerPoint PPT med Aspose.Slides för Python.

  • Skapa först en instans av klassen Presentation.
  • Få referensen till bilden från Presentations.slides i ett objekt.
  • Lägg till ett histogramdiagram med standarddata med metoden Slide.shapes.addchart().
  • Rensa standardserier och kategorier.
  • Få åtkomst till diagramdataarbetsboken till ett objekt med metoden Chart.chartdata.chartdataworkbook().
  • Lägg till nya serier till diagramdata.
  • Få åtkomst till varje serie till ett objekt och lägg till datapunkter i serien.
  • Ställ in aggregeringstyp för diagramaxeln.
  • Slutligen sparar du presentationen med metoden Presentation.save(string, SaveFormat).

Följande kodexempel visar hur man skapar ett histogramdiagram i PPTX i Python.

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

# Skapa presentation (eller ladda en befintlig) 
with slides.Presentation() as pres:

    # Lägg till diagram
    chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.HISTOGRAM, 50, 50, 500, 400)

    # Rensa standardkategorier och serier
    chart.chart_data.categories.clear()
    chart.chart_data.series.clear()

    # Få tillgång till arbetsboken
    wb = chart.chart_data.chart_data_workbook

    wb.clear(0)

    # Lägg till datapunkter i serier
    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))

    # Ställ in aggregeringstyp
    chart.axes.horizontal_axis.aggregation_type = slides.charts.AxisAggregationType.AUTOMATIC

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

Följande är skärmdumpen av det skapade histogramdiagrammet.

skapa histogramdiagram i powerpoint i Python

Skapa ett aktiediagram i PowerPoint med Python

Aktiediagram är också bland de vanligaste diagramtyperna i PowerPoint-presentationer. Följande är stegen för att skapa ett aktiediagram i en PPT i Python.

  • Skapa först en instans av klassen Presentation.
  • Få referensen till bilden från Presentations.slides i ett objekt.
  • Lägg till ett Öppna Hög Låg Stäng-diagram med standarddata med Slide.shapes.addchart()-metoden.
  • Rensa standardserier och kategorier.
  • Få åtkomst till diagramdataarbetsboken till ett objekt med metoden Chart.chartdata.chartdataworkbook().
  • Lägg till nya serier och kategorier i diagrammet.
  • Få tillgång till varje diagramserie och lägg till datapunkter.
  • Ange Hi Low Lines-format.
  • Slutligen sparar du presentationen med metoden Presentation.save(string, SaveFormat).

Följande kodexempel visar hur man lägger till ett aktiediagram till PowerPoint PPTX i Python.

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

# Skapa presentation (eller ladda en befintlig) 
with slides.Presentation() as pres:

    # Lägg till diagram
    chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.OPEN_HIGH_LOW_CLOSE, 50, 50, 600, 400, False)

    # Rensa standardserier och kategorier
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Få tillgång till arbetsboken
    wb = chart.chart_data.chart_data_workbook

    # Lägg till kategorier
    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"))

    # Lägg till serier
    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)

    # Lägg till datapunkter
    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

    # Ställ in seriefyllningsformatering
   for ser in chart.chart_data.series:
        ser.format.line.fill_format.fill_type = slides.FillType.NO_FILL

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

Följande är skärmdumpen av det skapade aktiediagrammet.

skapa aktiediagram i powerpoint i Python

Mer om diagram

Det finns många andra diagram som du kan lägga till i PowerPoint-presentationer med Aspose.Slides för Python. För att läsa mer om de diagramtyper som stöds kan du besöka denna dokumentationsartikel.

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du skapar diagram i PowerPoint PPT eller PPTX i Python. Vi har gått igenom stegen och kodexemplen för hur man lägger till kolumndiagram, punktdiagram, cirkeldiagram, histogram och aktiediagram. Du kan utforska mer om Aspose.Slides för Python med hjälp av dokumentation. Om du skulle ha några frågor eller funderingar, låt oss veta via vårt forum.

Se även