Python에서 프레젠테이션 차트에 추세선 추가

개요

이 문서는 Aspose.Slides를 사용하여 프레젠테이션 차트에 추세선을 추가하는 방법을 설명합니다. 차트를 만들고, 차트 시리즈에 추세선을 추가하며, 지수형, 선형, 로그형, 이동 평균, 다항식 및 거듭제곱 등 여러 추세선 유형을 사용하는 방법을 보여줍니다.

또한 선 모양을 삽입하여 차트에 사용자 정의 선을 추가하는 방법을 설명하고, 앞/뒤 추세선 투영 값과 추세선이 PDF 또는 SVG로 내보내거나 차트를 이미지로 렌더링할 때 유지되는지에 대한 간단한 FAQ를 포함합니다.

추세선 추가

Aspose.Slides for Python via Java는 다양한 차트 추세선을 관리하기 위한 간단한 API를 제공합니다:

  1. Presentation 클래스의 인스턴스를 생성합니다.
  2. 인덱스로 슬라이드에 대한 참조를 가져옵니다.
  3. 기본 데이터와 원하는 유형으로 차트를 추가합니다(이 예제는 ChartType.ClusteredColumn을 사용합니다).
  4. 차트 시리즈 1에 지수형 추세선을 추가합니다.
  5. 차트 시리즈 1에 선형 추세선을 추가합니다.
  6. 차트 시리즈 2에 로그형 추세선을 추가합니다.
  7. 차트 시리즈 2에 이동 평균 추세선을 추가합니다.
  8. 차트 시리즈 3에 다항식 추세선을 추가합니다.
  9. 차트 시리즈 3에 거듭제곱 추세선을 추가합니다.
  10. 수정된 프레젠테이션을 PPTX 파일로 저장합니다.

다음 코드는 추세선이 포함된 차트를 생성합니다.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, FillType, Presentation, SaveFormat, TrendlineType
from java.awt import Color

# Presentation 클래스의 인스턴스를 생성합니다.
presentation = Presentation()
try:
    # 클러스터드 컬럼 차트를 생성합니다.
    chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 20, 20, 500, 400)

    # 차트 시리즈 1에 지수형 추세선을 추가합니다.
    exponential_trend_line = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(TrendlineType.Exponential)
    exponential_trend_line.setDisplayEquation(False)
    exponential_trend_line.setDisplayRSquaredValue(False)

    # 차트 시리즈 1에 선형 추세선을 추가합니다.
    linear_trend_line = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(TrendlineType.Linear)
    linear_trend_line.setTrendlineType(TrendlineType.Linear)
    linear_trend_line.getFormat().getLine().getFillFormat().setFillType(FillType.Solid)
    linear_trend_line.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED)

    # 차트 시리즈 2에 로그형 추세선을 추가합니다.
    logarithmic_trend_line = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(TrendlineType.Logarithmic)
    logarithmic_trend_line.setTrendlineType(TrendlineType.Logarithmic)
    logarithmic_trend_line.addTextFrameForOverriding("New log trend line")

    # 차트 시리즈 2에 이동 평균 추세선을 추가합니다.
    moving_average_trend_line = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(TrendlineType.MovingAverage)
    moving_average_trend_line.setTrendlineType(TrendlineType.MovingAverage)
    moving_average_trend_line.setPeriod(jpype.JByte(3))
    moving_average_trend_line.setTrendlineName("New TrendLine Name")

    # 차트 시리즈 3에 다항식 추세선을 추가합니다.
    polynomial_trend_line = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(TrendlineType.Polynomial)
    polynomial_trend_line.setTrendlineType(TrendlineType.Polynomial)
    polynomial_trend_line.setForward(1)
    polynomial_trend_line.setOrder(jpype.JByte(3))

    # 차트 시리즈 3에 거듭제곱 추세선을 추가합니다.
    power_trend_line = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(TrendlineType.Power)
    power_trend_line.setTrendlineType(TrendlineType.Power)
    power_trend_line.setBackward(1)

    # 프레젠테이션을 저장합니다.
    presentation.save("ChartTrendLines_out.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

사용자 정의 선 추가

Aspose.Slides for Python via Java는 차트에 사용자 정의 선을 추가하기 위한 간단한 API를 제공합니다. 선택한 슬라이드의 차트에 일반 선을 추가하려면 다음 단계를 따르세요:

  • Presentation 클래스의 인스턴스를 생성합니다.
  • 인덱스로 슬라이드에 대한 참조를 가져옵니다.
  • ShapeCollection 클래스의 addChart 메서드를 사용하여 새 차트를 생성합니다.
  • addAutoShape 메서드와 ShapeType.Line를 사용하여 선 모양을 추가합니다.
  • 도형 선의 색상을 설정합니다.
  • 수정된 프레젠테이션을 PPTX 파일로 저장합니다.

다음 코드는 사용자 정의 선이 포함된 차트를 생성합니다.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, FillType, Presentation, SaveFormat, ShapeType
from java.awt import Color

# Presentation 클래스의 인스턴스를 생성합니다.
presentation = Presentation()
try:
    chart = presentation.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 500, 400)
    shape = chart.getUserShapes().getShapes().addAutoShape(ShapeType.Line, 0, chart.getHeight() / 2, chart.getWidth(), 0)

    shape.getLineFormat().getFillFormat().setFillType(FillType.Solid)
    shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.RED)

    presentation.save("Presentation.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

FAQ

추세선에서 ‘forward’와 ‘backward’는 무엇을 의미하나요?

이는 추세선을 앞이나 뒤로 연장한 길이를 의미합니다. 산점도(XY) 차트의 경우 축 단위로 측정되며, 비산점도 차트의 경우 카테고리 수로 측정됩니다. 음수 값은 허용되지 않습니다.

프레젠테이션을 PDF 또는 SVG로 내보내거나 슬라이드를 이미지로 렌더링할 때 추세선이 유지되나요?

예. Aspose.Slides는 프레젠테이션을 PDF/SVG로 변환하고 차트를 이미지로 렌더링합니다. 차트의 일부인 추세선은 이러한 작업 중에 유지됩니다. 차트 자체의 이미지를 내보내는 메서드도 제공됩니다.