Python의 PowerPoint 프레젠테이션에서 차트 만들기

차트는 데이터의 그래픽 표현에 사용되므로 분석이 더 쉽습니다. 따라서 MS PowerPoint는 다양한 방식으로 데이터를 시각화할 수 있는 다양한 차트를 지원합니다. 그 중에서도 가장 일반적으로 사용되는 차트에는 파이 차트, 꺾은선형 차트, 막대 차트, 히스토그램, 주식 차트 등이 있습니다. 이 기사에서는 Python에서 PowerPoint PPT 또는 PPTX로 이러한 차트를 만드는 방법을 배웁니다.

PowerPoint PPT에서 차트를 만드는 Python 라이브러리

PowerPoint PPT/PPTX에서 차트를 생성하기 위해 Aspose.Slides for Python via .NET을 사용합니다. PowerPoint 프레젠테이션을 만들고 조작하기 위한 완전한 패키지를 제공하는 기능이 풍부한 라이브러리입니다. 다음 pip 명령을 사용하여 PyPI에서 설치할 수 있습니다.

> pip install aspose.slides

Aspose.Slides는 프레젠테이션에 동적으로 추가할 수 있는 다양한 차트를 지원합니다. 다음 섹션에서는 몇 가지 인기 있는 유형의 차트를 만드는 방법을 보여줍니다.

Python에서 PowerPoint PPT로 세로 막대형 차트 만들기

이 섹션에서는 Python의 PowerPoint 프레젠테이션에서 세로 막대형 차트를 만드는 방법을 배웁니다. 다음은 이 작업을 수행하는 단계입니다.

  • 먼저 Presentation 클래스의 인스턴스를 만듭니다.
  • 개체의 Presentations.slides에서 슬라이드 참조를 가져옵니다.
  • Slide.shapes.add\chart() 메서드를 사용하여 기본 데이터가 있는 클러스터형 세로 막대형 차트를 추가합니다.
  • 차트 제목 및 텍스트 서식과 같은 기타 속성을 설정합니다.
  • Chart.chart\data.chart\data\workbook() 메서드를 사용하여 차트 데이터 통합 문서에 개체에 액세스합니다.
  • Chart.chart\data.series.clear() 및 Chart.chart\data.categories.clear() 메서드를 각각 사용하여 차트 데이터에서 모든 기본 시리즈 및 범주를 지웁니다.
  • 새로운 시리즈와 카테고리를 추가하세요.
  • 각 차트 시리즈에 개체에 액세스하고 데이터 요소를 개체에 추가합니다.
  • 차트 시리즈의 채우기 색상을 추가하고 레이블을 설정합니다.
  • 마지막으로 Presentation.save(string, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 Python의 PowerPoint PPT에서 세로 막대형 차트를 만드는 방법을 보여줍니다.

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)

다음은 결과 세로 막대형 차트의 스크린샷입니다.

파이썬에서 파워포인트로 세로 막대형 차트 만들기

Python에서 PowerPoint PPT로 분산형 차트 만들기

다음은 Python의 PowerPoint PPT에서 분산형 차트를 만드는 단계입니다.

  • 먼저 Presentation 클래스의 인스턴스를 만듭니다.
  • 개체의 Presentations.slides에서 슬라이드 참조를 가져옵니다.
  • Slide.shapes.add\chart() 메서드를 사용하여 기본 데이터로 분산형 차트를 추가합니다.
  • Chart.chart\data.chart\data\workbook() 메서드를 사용하여 차트 데이터 통합 문서에 개체에 액세스합니다.
  • 차트 데이터에 새 시리즈를 추가합니다.
  • 각 계열에 개체에 액세스하고 계열에 데이터 요소를 추가합니다.
  • 시리즈의 마커를 설정합니다.
  • 마지막으로 Presentation.save(string, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 Python의 PowerPoint PPTX에서 분산형 차트를 만드는 방법을 보여줍니다.

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)

다음 스크린샷은 결과 분산형 차트를 보여줍니다.

Python의 PowerPoint에서 분산형 차트 만들기

Python에서 PowerPoint PPT로 원형 차트 만들기

다음은 Python에서 PowerPoint PPT로 원형 차트를 만드는 단계입니다.

  • 먼저 Presentation 클래스의 인스턴스를 만듭니다.
  • 개체의 Presentations.slides에서 슬라이드 참조를 가져옵니다.
  • Slide.shapes.add\chart() 메서드를 사용하여 기본 데이터가 있는 원형 차트를 추가합니다.
  • 차트 제목 및 텍스트 서식과 같은 기타 속성을 설정합니다.
  • 값의 가시성을 설정합니다.
  • Chart.chart\data.series.clear() 및 Chart.chart\data.categories.clear() 메서드를 각각 사용하여 차트 데이터에서 모든 기본 시리즈 및 범주를 지웁니다.
  • Chart.chart\data.chart\data\workbook() 메서드를 사용하여 차트 데이터 통합 문서에 개체에 액세스합니다.
  • 차트 데이터에 새 범주를 추가합니다.
  • 차트 데이터에 새 시리즈를 추가합니다.
  • 각 계열에 개체에 액세스하고 계열에 데이터 요소를 추가합니다.
  • 각 데이터 포인트에 액세스하고 해당 형식을 설정합니다.
  • 데이터 요소의 데이터 레이블에 서식을 적용합니다.
  • 지시선과 회전 각도를 설정합니다.
  • 마지막으로 Presentation.save(string, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 Python의 PowerPoint PPTX에서 원형 차트를 만드는 방법을 보여줍니다.

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)

다음은 생성된 파이 차트의 스크린샷입니다.

Python의 파워포인트에서 원형 차트 만들기

Python에서 PowerPoint PPTX에 히스토그램 차트 추가

다음은 Python용 Aspose.Slides를 사용하여 PowerPoint PPT에서 히스토그램 차트를 만드는 단계입니다.

  • 먼저 Presentation 클래스의 인스턴스를 만듭니다.
  • 개체의 Presentations.slides에서 슬라이드 참조를 가져옵니다.
  • Slide.shapes.add\chart() 메서드를 사용하여 기본 데이터로 히스토그램 차트를 추가합니다.
  • 기본 시리즈 및 범주를 지웁니다.
  • Chart.chart\data.chart\data\workbook() 메서드를 사용하여 차트 데이터 통합 문서에 개체에 액세스합니다.
  • 차트 데이터에 새 시리즈를 추가합니다.
  • 각 계열에 개체에 액세스하고 계열에 데이터 요소를 추가합니다.
  • 차트 축의 집계 유형을 설정합니다.
  • 마지막으로 Presentation.save(string, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 Python에서 PPTX로 히스토그램 차트를 만드는 방법을 보여줍니다.

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)

다음은 생성된 히스토그램 차트의 스크린샷입니다.

Python의 파워 포인트에서 히스토그램 차트 만들기

Python을 사용하여 PowerPoint에서 주식형 차트 만들기

주식형 차트는 PowerPoint 프레젠테이션에서 일반적으로 사용되는 차트 유형이기도 합니다. 다음은 Python에서 PPT로 주식형 차트를 만드는 단계입니다.

  • 먼저 Presentation 클래스의 인스턴스를 만듭니다.
  • 개체의 Presentations.slides에서 슬라이드 참조를 가져옵니다.
  • Slide.shapes.add\chart() 메서드를 사용하여 기본 데이터로 시가 고가 저가 종가 차트를 추가합니다.
  • 기본 시리즈 및 범주를 지웁니다.
  • Chart.chart\data.chart\data\workbook() 메서드를 사용하여 차트 데이터 통합 문서에 개체에 액세스합니다.
  • 차트에 새 시리즈 및 범주를 추가합니다.
  • 각 차트 시리즈에 액세스하고 데이터 포인트를 추가합니다.
  • 하이 로우 라인 형식을 지정합니다.
  • 마지막으로 Presentation.save(string, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 Python에서 PowerPoint PPTX에 주식형 차트를 추가하는 방법을 보여줍니다.

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)

다음은 생성된 주식 차트의 스크린샷입니다.

Python에서 파워 포인트에서 주식 차트 만들기

차트에 대한 추가 정보

Python용 Aspose.Slides를 사용하여 PowerPoint 프레젠테이션에 추가할 수 있는 다른 차트가 많이 있습니다. 지원되는 차트 유형에 대한 자세한 내용은 이 문서 문서를 참조하십시오.

무료 라이선스 받기

임시 무료 라이선스 받기 평가 제한 없이 라이브러리를 사용해 볼 수 있습니다.

결론

이 기사에서는 Python에서 PowerPoint PPT 또는 PPTX로 차트를 만드는 방법을 배웠습니다. 세로 막대형 차트, 분산형 차트, 원형 차트, 히스토그램 및 주식형 차트를 추가하는 방법에 대한 단계와 코드 샘플을 살펴보았습니다. 문서를 사용하여 Python용 Aspose.Slides에 대해 자세히 알아볼 수 있습니다. 질문이나 질문이 있는 경우 포럼을 통해 알려주십시오.

또한보십시오