Vytvářejte grafy v PowerPointových prezentacích v Pythonu

Grafy se používají pro grafické znázornění dat, což usnadňuje analýzu. Proto MS PowerPoint podporuje řadu grafů pro vizualizaci dat různými způsoby. Mezi nejčastěji používané grafy patří koláčové grafy, spojnicové grafy, sloupcové grafy, histogramy, akciové grafy atd. V tomto článku se dozvíte, jak tyto grafy vytvořit v PowerPointu PPT nebo PPTX v Pythonu.

Knihovna Python pro vytváření grafů v PowerPoint PPT

K vytvoření grafů v PowerPointu PPT/PPTX použijeme Aspose.Slides pro Python přes .NET. Jedná se o knihovnu bohatou na funkce, která poskytuje kompletní balíček pro vytváření a manipulaci s prezentacemi v PowerPointu. Můžete jej nainstalovat z PyPI pomocí následujícího příkazu pip.

> pip install aspose.slides

Aspose.Slides podporuje řadu grafů, které lze do prezentací přidávat dynamicky. V následujících částech si ukážeme, jak vytvořit některé oblíbené typy grafů.

Vytvořte sloupcový graf v PowerPoint PPT v Pythonu

V této části se dozvíte, jak vytvořit sloupcový graf v powerpointové prezentaci v Pythonu. Následují kroky k provedení této operace.

  • Nejprve vytvořte instanci třídy Presentation.
  • Získejte odkaz na snímek z Presentations.slides v objektu.
  • Přidejte seskupený sloupcový graf s výchozími daty pomocí metody Slide.shapes.addchart().
  • Nastavte název grafu a další vlastnosti, jako je formátování textu.
  • Přístup k sešitu dat grafu do objektu pomocí metody Chart.chartdata.chartdataworkbook().
  • Vymažte všechny výchozí řady a kategorie z dat grafu pomocí metod Chart.chartdata.series.clear() a Chart.chartdata.categories.clear().
  • Přidejte nové série a kategorie.
  • Přistupte ke každé řadě grafu do objektu a přidejte do něj datové body.
  • Přidejte barvu výplně pro řady grafů a nastavte štítky.
  • Nakonec prezentaci uložte pomocí metody Presentation.save(string, SaveFormat).

Následující ukázka kódu ukazuje, jak vytvořit sloupcový graf v PowerPoint PPT v Pythonu.

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

# Vytvořit prezentaci (nebo načíst existující) 
with slides.Presentation() as pres:

    # Přístup k prvnímu snímku
    sld = pres.slides[0]

    # Přidat graf s výchozími daty
    chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)

    # Nastavte název grafu
    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

    # Nastavte první sérii pro zobrazení hodnot
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Nastavte index listu dat grafu
    defaultWorksheetIndex = 0

    # Získejte list dat grafu
    fact = chart.chart_data.chart_data_workbook

    # Smazat výchozí vygenerované série a kategorie
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    s = len(chart.chart_data.series)
    s = len(chart.chart_data.categories)

    # Přidat novou sérii
    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)

    # Přidat nové kategorie
    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"))

    # Vezměte první sérii grafů
    series = chart.chart_data.series[0]

    # Vyplňte data série
    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))

    # Nastavte barvu výplně pro sérii
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.blue

    # Vezměte druhou řadu grafů
    series = chart.chart_data.series[1]

    # Vyplňte data série
    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))

    # Nastavte barvu výplně pro sérii
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.orange

    # První štítek bude zobrazovat název kategorie
    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

    # Zobrazit hodnotu pro třetí štítek
    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 = "/"

    # Uložit prezentaci
    pres.save("column-chart.pptx", slides.export.SaveFormat.PPTX)

Následuje snímek obrazovky výsledného sloupcového grafu.

vytvořit sloupcový graf v powerpointu v Pythonu

Vytvořte bodový graf v PowerPoint PPT v Pythonu

Následují kroky k vytvoření bodového grafu v PowerPoint PPT v Pythonu.

  • Nejprve vytvořte instanci třídy Presentation.
  • Získejte odkaz na snímek z Presentations.slides v objektu.
  • Pomocí metody Slide.shapes.addchart() přidejte bodový graf s výchozími daty.
  • Přístup k sešitu dat grafu do objektu pomocí metody Chart.chartdata.chartdataworkbook().
  • Přidejte k datům grafu nové řady.
  • Přístup ke každé sérii do objektu a přidání datových bodů do série.
  • Nastavte značku pro sérii.
  • Nakonec prezentaci uložte pomocí metody Presentation.save(string, SaveFormat).

Následující ukázka kódu ukazuje, jak vytvořit bodový graf v PowerPoint PPTX v Pythonu.

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

# Vytvořit prezentaci (nebo načíst existující) 
with slides.Presentation() as pres:

    # Přístup k prvnímu snímku    
    slide = pres.slides[0]

    # Vytvořte výchozí graf
    chart = slide.shapes.add_chart(slides.charts.ChartType.SCATTER_WITH_SMOOTH_LINES, 0, 0, 400, 400)

    # Získejte výchozí index listu dat grafu
    defaultWorksheetIndex = 0

    # Získejte list dat grafu
    fact = chart.chart_data.chart_data_workbook

    # Smazat ukázkovou sérii
    chart.chart_data.series.clear()

    # Přidat novou sérii
    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)

    # Vezměte první sérii grafů
    series = chart.chart_data.series[0]

    # Přidat nový bod (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))

    # Přidat nový bod (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))

    # Upravte typ série
    series.type = slides.charts.ChartType.SCATTER_WITH_STRAIGHT_LINES_AND_MARKERS

    # Změňte značku řady grafu
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.STAR

    # Vezměte druhou řadu grafů
    series = chart.chart_data.series[1]

    # Přidat nový bod (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))

    # Přidat nový bod (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))

    # Přidat nový bod (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))

    # Přidat nový bod (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))

    # Změňte značku řady grafu
    series.marker.size = 10
    series.marker.symbol = slides.charts.MarkerStyleType.CIRCLE

    # Uložit prezentaci
    pres.save("scatter-chart.pptx", slides.export.SaveFormat.PPTX)

Následující snímek obrazovky ukazuje výsledný bodový graf.

vytvořit bodový graf v powerpointu v Pythonu

Vytvořte výsečový graf v PowerPoint PPT v Pythonu

Následují kroky k vytvoření výsečového grafu v PowerPoint PPT v Pythonu.

  • Nejprve vytvořte instanci třídy Presentation.
  • Získejte odkaz na snímek z Presentations.slides v objektu.
  • Pomocí metody Slide.shapes.addchart() přidejte výsečový graf s výchozími daty.
  • Nastavte název grafu a další vlastnosti, jako je formátování textu.
  • Nastavte viditelnost hodnot.
  • Vymažte všechny výchozí řady a kategorie z dat grafu pomocí metod Chart.chartdata.series.clear() a Chart.chartdata.categories.clear().
  • Přístup k sešitu dat grafu do objektu pomocí metody Chart.chartdata.chartdataworkbook().
  • Přidejte do dat grafu nové kategorie.
  • Přidejte k datům grafu nové řady.
  • Přístup ke každé sérii do objektu a přidání datových bodů do série.
  • Přístup ke každému datovému bodu a nastavení jeho formátování.
  • Aplikujte formátování na popisky dat v datových bodech.
  • Nastavte odkazové čáry a úhly rotace.
  • Nakonec prezentaci uložte pomocí metody Presentation.save(string, SaveFormat).

Následující ukázka kódu ukazuje, jak vytvořit výsečový graf v PowerPoint PPTX v Pythonu.

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

# Vytvořit prezentaci (nebo načíst existující) 
with slides.Presentation() as presentation:

    # Přístup k prvnímu snímku
    slide = presentation.slides[0]

    # Přidat graf s výchozími daty
    chart = slide.shapes.add_chart(slides.charts.ChartType.PIE, 100, 100, 400, 400)

    # Nastavte název grafu
    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

    # Nastavte první sérii pro zobrazení hodnot
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Nastavte index listu dat grafu
    defaultWorksheetIndex = 0

    # Získejte list dat grafu
    fact = chart.chart_data.chart_data_workbook

    # Smazat výchozí vygenerované série a kategorie
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Přidat nové kategorie
    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"))

    # Přidat novou sérii
    series = chart.chart_data.series.add(fact.get_cell(0, 0, 1, "Series 1"), chart.type)

    # Vyplňte data série
    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))

    # Přidejte nové body a nastavte barvu sektoru
    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

    # Nastavte hranici sektoru
    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 = snímky.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

    # Nastavte hranici sektoru
    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 = snímky.LineStyle.SINGLE
    # point1.format.line.dash_style = snímky.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

    # Nastavte hranici sektoru
    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 = snímky.LineStyle.THIN_THIN
    # point2.format.line.dash_style = snímky.LineDashStyle.LARGE_DASH_DOT_DOT

    # Vytvořte vlastní štítky pro každou z kategorií pro nové série
    lbl1 = series.data_points[0].label

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

    # Zobrazit vodicí čáry pro graf
    # series.labels.default_data_label_format.show_leader_lines = Pravda

    # Nastavte úhel otočení pro sektory koláčového grafu
    chart.chart_data.series_groups[0].first_slice_angle = 180

    # Uložit prezentaci
    presentation.save("pie-chart.pptx", slides.export.SaveFormat.PPTX)

Následuje snímek obrazovky vygenerovaného koláčového grafu.

vytvořit koláčový graf v powerpointu v Pythonu

Přidejte histogramový graf v PowerPointu PPTX v Pythonu

Následují kroky k vytvoření histogramového grafu v PowerPoint PPT pomocí Aspose.Slides pro Python.

  • Nejprve vytvořte instanci třídy Presentation.
  • Získejte odkaz na snímek z Presentations.slides v objektu.
  • Přidejte histogramový graf s výchozími daty pomocí metody Slide.shapes.addchart().
  • Vymažte výchozí série a kategorie.
  • Přístup k sešitu dat grafu do objektu pomocí metody Chart.chartdata.chartdataworkbook().
  • Přidejte k datům grafu nové řady.
  • Přístup ke každé sérii do objektu a přidání datových bodů do série.
  • Nastavte typ agregace osy grafu.
  • Nakonec prezentaci uložte pomocí metody Presentation.save(string, SaveFormat).

Následující ukázka kódu ukazuje, jak vytvořit histogramový graf v PPTX v Pythonu.

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

# Vytvořit prezentaci (nebo načíst existující) 
with slides.Presentation() as pres:

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

    # Vymazat výchozí kategorie a série
    chart.chart_data.categories.clear()
    chart.chart_data.series.clear()

    # Přístup k sešitu
    wb = chart.chart_data.chart_data_workbook

    wb.clear(0)

    # Přidejte datové body do řady
    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))

    # Nastavte typ agregace
    chart.axes.horizontal_axis.aggregation_type = slides.charts.AxisAggregationType.AUTOMATIC

    # Uložit prezentaci
    pres.save("histogram-chart.pptx", slides.export.SaveFormat.PPTX)

Následuje snímek obrazovky vytvořeného histogramu.

vytvořte histogramový graf v powerpointu v Pythonu

Vytvořte burzovní graf v PowerPointu pomocí Pythonu

Burzovní grafy také patří mezi běžně používané typy grafů v prezentacích PowerPoint. Následují kroky k vytvoření burzovního grafu v PPT v Pythonu.

  • Nejprve vytvořte instanci třídy Presentation.
  • Získejte odkaz na snímek z Presentations.slides v objektu.
  • Přidejte graf Open High Low Close s výchozími daty pomocí metody Slide.shapes.addchart().
  • Vymažte výchozí série a kategorie.
  • Přístup k sešitu dat grafu do objektu pomocí metody Chart.chartdata.chartdataworkbook().
  • Přidejte do grafu nové série a kategorie.
  • Získejte přístup ke každé řadě grafů a přidejte datové body.
  • Zadejte formát Hi Low Lines.
  • Nakonec prezentaci uložte pomocí metody Presentation.save(string, SaveFormat).

Následující ukázka kódu ukazuje, jak přidat burzovní graf do PowerPoint PPTX v Pythonu.

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

# Vytvořit prezentaci (nebo načíst existující) 
with slides.Presentation() as pres:

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

    # Vymazat výchozí série a kategorie
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # Přístup k sešitu
    wb = chart.chart_data.chart_data_workbook

    # Přidat kategorie
    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"))

    # Přidat sérii
    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)

    # Přidejte datové body
    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

    # Nastavte formátování výplně série
   for ser in chart.chart_data.series:
        ser.format.line.fill_format.fill_type = slides.FillType.NO_FILL

    # Uložit prezentaci
    pres.save("stock-chart.pptx", slides.export.SaveFormat.PPTX)

Následuje snímek obrazovky vytvořeného akciového grafu.

vytvořit burzovní graf v powerpointu v Pythonu

Více o grafech

Existuje mnoho dalších grafů, které můžete přidat do prezentací PowerPoint pomocí Aspose.Slides pro Python. Chcete-li si přečíst více o podporovaných typech grafů, můžete navštívit tento článek dokumentace.

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet knihovnu bez omezení hodnocení.

Závěr

V tomto článku jste se naučili vytvářet grafy v PowerPointu PPT nebo PPTX v Pythonu. Prošli jsme kroky a ukázky kódu, jak přidat sloupcové grafy, bodové grafy, koláčové grafy, histogramy a akciové grafy. Více o Aspose.Slides pro Python můžete prozkoumat pomocí dokumentace. V případě, že byste měli nějaké dotazy nebo dotazy, dejte nám vědět prostřednictvím našeho fóra.

Viz také