워터폴 차트는 시작 값이 일련의 증가와 감소를 통해 어떻게 변하는지를 보여줍니다. 예를 들어, 재무 보고서에서 매출, 비용 및 기타 수입이 최종 잔액에 어떻게 기여하는지를 나타내는 데 사용할 수 있습니다.
이 튜토리얼에서는 Python과 Aspose.Words for Python via .NET을 사용하여 Word 문서에 워터폴 차트를 만들게 됩니다. 또한 차트에서 총합 포인트를 식별하고 기존 문서의 워터폴 차트를 검사하는 방법도 배웁니다.
Word에서 워터폴 차트를 만들기 위한 Python 라이브러리
Aspose.Words for Python via .NET 은 Python에서 Word 문서를 생성하고 수정할 수 있게 해줍니다. 차트를 보고서에 추가하고 차트 시리즈 및 데이터 포인트를 작업하는 데 사용할 수 있습니다.
PyPI에서 라이브러리를 설치합니다:
pip install aspose-words
전체 튜토리얼을 위해 Aspose.Words for Python via .NET 26.10 or later를 사용하십시오. 이 버전에서는 워터폴 차트 포인트가 총계인지 확인하는 데 사용되는 API가 도입되었습니다.
플랫폼 요구 사항 및 기타 설치 세부 정보는 설치 문서를 참조하십시오.
샘플 워터폴 차트 이해하기
예제에서는 시작 잔액에서 종료 잔액으로의 변화를 보여주기 위해 다음 데이터를 사용합니다:
| 카테고리 | 값 | 포인트 유형 |
|---|---|---|
| 시작 잔액 | 100 | 총계 |
| 매출 | +40 | 증가 |
| 비용 | −20 | 감소 |
| 소계 | 120 | 총계 |
| 기타 수입 | +10 | 증가 |
| 마감 잔액 | 130 | 총계 |
매출, 비용 및 기타 수입 항목은 변동을 나타냅니다. 기초 잔액, 소계 및 마감 잔액은 특정 단계의 값을 나타냅니다.
차트 시리즈를 만들려면 동일한 순서로 세 개의 목록을 제공해야 합니다:
- Categories: 차트 포인트에 대한 레이블.
- Values: 변경 사항 및 명시적으로 제공된 총계 값.
- Total flags: 해당 포인트를 총계로 지정하는 부울 값.
플래그는 총점을 식별합니다; 계산하지는 않습니다. 이 예제에서는 소계가 120으로 제공되고, 마감 잔액이 130으로 제공됩니다.
Python을 사용하여 Word에서 워터폴 차트 만들기
차트를 만들려면 다음 단계를 따르세요:
Document와DocumentBuilder를 생성합니다.ChartType.WATERFALL을 사용하여 차트를 삽입합니다.- 차트 제목을 설정하고 기본 시리즈를 지웁니다.
- 카테고리, 값 및 총합 플래그를 추가합니다.
- 문서를 DOCX 파일로 저장합니다.
다음 예제는 전체 차트를 생성합니다:
import aspose.words as aw
# Create a document and document builder.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
# Insert a waterfall chart.
shape = builder.insert_chart(
chart_type=aw.drawing.charts.ChartType.WATERFALL,
width=500,
height=350
)
chart = shape.chart
chart.title.text = "Balance Changes"
# Remove the default chart series.
chart.series.clear()
# Define categories, values, and total flags.
categories = [
"Opening balance",
"Sales",
"Expenses",
"Subtotal",
"Other income",
"Closing balance"
]
values = [100, 40, -20, 120, 10, 130]
total_flags = [True, False, False, True, False, True]
# Add the waterfall series.
series = chart.series.add(
series_name="Balance",
categories=categories,
values=values,
is_subtotal=total_flags
)
# Save the Word document.
doc.save("waterfall-chart.docx")
워터폴 전용 add() 메서드는 시리즈 이름, 카테고리, 값 및 Boolean 플래그를 허용합니다. 지정된 인덱스의 각 항목은 동일한 차트 포인트를 설명합니다. Boolean 인수가 is_subtotal이라고 명명되어 있지만, 문서에 제시된 예제에서는 시작값, 중간 소계 및 최종값을 총계로 지정하는 데 사용됩니다.
결과물인 waterfall-chart.docx에는 시작 잔액, 변동, 소계 및 종료 잔액을 보여주는 6포인트 차트가 포함되어 있습니다.

Python을 사용하여 Word에서 워터폴 차트 만들기.
폭포 차트 포인트가 합계인지 확인하기
각 포인트의 지정 여부는 series.is_total(index) 로 확인할 수 있습니다. 이전 예제에서 chart.series.add(...) 호출 뒤에 다음 루프를 추가하십시오:
for i in range(len(categories)):
point_type = "Total" if series.is_total(i) else "Not a total"
print(f"{categories[i]}: {values[i]} — {point_type}")
샘플 데이터에 대한 예상 출력은 다음과 같습니다:
Opening balance: 100 — Total
Sales: 40 — Not a total
Expenses: -20 — Not a total
Subtotal: 120 — Total
Other income: 10 — Not a total
Closing balance: 130 — Total
is_total() 메서드는 zero-based index를 받아 포인트가 총계로 지정된 경우 True를 반환합니다. 이 메서드는 포인트가 시작 잔액인지, 중간 소계인지, 최종 총계인지 여부를 식별하지 않습니다.
ChartDataPoint.is_total를 사용하여 합계 확인
이미 차트 데이터 포인트가 있는 경우, 해당 포인트의 is_total 속성을 읽을 수 있습니다. 다음 예제는 인덱스 3에서 소계(subtotal)를 확인합니다:
is_subtotal = series.data_points[3].is_total
print(f"Subtotal is a total: {is_subtotal}")
Expected output:
Subtotal is a total: True
ChartDataPoint.is_total는 워터폴 차트용 읽기 전용 속성입니다. series.is_total(index)와 마찬가지로, 해당 포인트의 지정 여부를 보고합니다; 총계를 설정하거나 계산하지 않습니다.
기존 Word 문서에서 워터폴 차트 검사
기존 Word 문서를 로드하고 워터폴 차트 시리즈를 검색할 수도 있습니다. 다음 독립 실행형 예제는 모든 도형을 확인하고 차트가 없는 도형은 건너뛰며, 찾은 각 워터폴 시리즈를 검사합니다.
waterfall-chart.docx를 문서 경로로 교체하십시오:
import aspose.words as aw
# Load an existing Word document.
doc = aw.Document("waterfall-chart.docx")
found_waterfall_series = False
# Search the document's shapes.
shapes = doc.get_child_nodes(aw.NodeType.SHAPE, True)
for node in shapes:
shape = node.as_shape()
if not shape.has_chart:
continue
for series in shape.chart.series:
if series.series_type != aw.drawing.charts.ChartSeriesType.WATERFALL:
continue
found_waterfall_series = True
print(f"Waterfall series: {series.name}")
for i in range(series.y_values.count):
point_type = "Total" if series.is_total(i) else "Not a total"
print(f"Point {i}: {point_type}")
if not found_waterfall_series:
print("No waterfall chart series found.")
예제는 각 포인트를 0부터 시작하는 인덱스로 보고합니다. 존재하는 경우 여러 워터폴 시리즈를 처리하고, 없을 경우 메시지를 출력합니다. series_type 속성을 사용하면 ChartSeriesType.WATERFALL을 확인한 후 is_total()을 호출할 수 있습니다.
무료 라이선스 받기
Aspose.Words for Python via .NET를 평가하기 위해 무료 임시 라이선스를 요청할 수 있습니다. 예제를 실행하기 전에 애플리케이션에 라이선스를 적용하십시오.
결론
Python을 사용하여 Word 문서에 워터폴 차트를 만들고 총 포인트를 프로그래밍 방식으로 식별할 수 있습니다. 동일한 방법을 사용하여 생성된 보고서에 차트를 추가하거나 기존 문서에서 워터폴 시리즈를 검사하십시오.
자주 묻는 질문
Python을 사용해 Word에서 워터폴 차트를 만드는 방법은?
ChartType.WATERFALL를 사용하여 차트를 삽입하고, 카테고리, 값 및 총계 플래그가 포함된 시리즈를 추가한 다음, 문서를 DOCX 파일로 저장합니다.
워터폴 차트에서 총 포인트를 지정하려면 어떻게 합니까?
시리즈를 추가할 때 is_subtotal 인수에 부울 리스트를 전달하십시오. 총계로 지정해야 하는 각 포인트에 대해 항목을 True 로 설정합니다.
워터폴 차트 포인트가 총계인지 확인하려면 어떻게 해야 하나요?
포인트의 0부터 시작하는 인덱스를 사용하여 series.is_total(index)를 호출하거나, 해당 데이터 포인트 객체의 is_total 속성을 읽습니다.
is_total API는 합계를 설정합니까, 아니면 계산합니까?
아니요. 해당 점이 합계로 지정되었는지 여부를 보고합니다. 시리즈를 만들 때 값과 해당 합계 플래그를 제공하십시오.
기존 Word 문서에서 워터폴 차트를 검사할 수 있나요?
예. 문서를 로드하고 차트를 포함하는 도형을 찾아 각 시리즈가 ChartSeriesType.WATERFALL인지 확인한 다음 포인트를 검사합니다.
