Водоспадна діаграма показує, як початкове значення змінюється через серію збільшень і зменшень. Наприклад, ви можете використати її у фінансовому звіті, щоб показати, як продажі, витрати та інший дохід сприяють підсумковому балансу.
У цьому підручнику ви створите водоспадну діаграму у документі Word, використовуючи Python і Aspose.Words for Python via .NET. Ви також дізнаєтеся, як визначати загальні точки на діаграмі та переглядати водоспадні діаграми у існуючих документах.
Бібліотека Python для створення водоспадних діаграм у Word
Aspose.Words for Python via .NET дозволяє створювати та змінювати Word‑документи у Python. Ви можете використовувати його, щоб додавати діаграми до звітів і працювати з серіями діаграм та точками даних.
Встановіть бібліотеку з PyPI:
pip install aspose-words
Використовуйте Aspose.Words for Python via .NET 26.10 або пізніше для повного посібника. Ця версія впровадила API, які використовуються для перевірки, чи є точка водоспадної діаграми підсумковою.
Для вимог до платформи та інших деталей встановлення перегляньте документацію з встановлення.
Розуміння прикладу діаграми водоспаду
У прикладах використано такі дані, щоб показати зміни від початкового балансу до кінцевого балансу:
| Категорія | Значення | Тип пункту |
|---|---|---|
| Початковий баланс | 100 | Всього |
| Продажі | +40 | Зростання |
| Витрати | −20 | Зниження |
| Проміжний підсумок | 120 | Всього |
| Інший дохід | +10 | Зростання |
| Кінцевий баланс | 130 | Всього |
Точки продажів, витрат і іншого доходу відображають зміни. Початковий баланс, підсумок і кінцевий баланс представляють значення на певних етапах.
Щоб створити серії діаграми, ви надасте три списки в тому ж порядку:
- Категорії: Мітки для точок діаграми.
- Значення: Зміни та явно задані загальні значення.
- Прапорці підсумку: Булеві значення, які позначають відповідні точки як підсумкові.
Прапорці визначають загальну кількість балів; вони не обчислюють їх. У цьому прикладі підсумкова сума вказана як 120, а заключний баланс — 130.
Створення водоспадної діаграми у Word за допомогою Python
Виконайте наступні кроки, щоб створити діаграму:
- Створіть
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() специфічний для waterfall приймає назву серії, категорії, значення та булеві прапорці. Кожен елемент з певним індексом описує одну і ту ж точку діаграми. Хоча булевий аргумент названий is_subtotal, у документованому прикладі його використовують для позначення початкового значення, проміжного підсумку та кінцевого значення як підсумків.
Отриманий waterfall-chart.docx містить шеститочкову діаграму, що показує початковий баланс, зміни, підсумок та кінцевий баланс.

Створення каскадних діаграм у Word за допомогою Python.
Перевірте, чи точка водоспадної діаграми є підсумковою
Ви можете перевірити призначення кожної точки за допомогою 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() приймає нульовий індекс і повертає True, якщо точка позначена як підсумок. Він не визначає, чи точка є початковим залишком, проміжним підсумком або остаточним підсумком.
Перевірка підсумку за допомогою ChartDataPoint.is_total
Якщо у вас уже є точка даних діаграми, ви можете прочитати її властивість is_total. Наступний приклад перевіряє проміжний підсумок за індексом 3:
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.")
Приклад повідомляє про кожну точку за її нульовим індексом. Він обробляє кілька серій водоспадів, якщо вони присутні, і виводить повідомлення, якщо їх не знайде. series_type властивість дозволяє коду перевіряти ChartSeriesType.WATERFALL перед викликом is_total().
Отримати безкоштовну ліцензію
Ви можете запросити безкоштовну тимчасову ліцензію для оцінки Aspose.Words for Python via .NET. Застосуйте ліцензію у вашому застосунку перед запуском прикладів.
Висновок
Ви можете створити водоспадну діаграму у документі Word за допомогою Python і програмно визначити її загальні точки. Використовуйте той самий підхід, щоб додавати діаграми до згенерованих звітів або перевіряти серії водоспадних діаграм у існуючих документах.
Поширені запитання
Як створити водоспадну діаграму у Word за допомогою Python?
Вставте діаграму, використовуючи ChartType.WATERFALL, додайте серію з категоріями, значеннями та позначками підсумку, і збережіть документ у форматі DOCX.
Як задати загальну кількість балів у водоспадній діаграмі?
Передайте список булевих значень через аргумент is_subtotal під час додавання серії. Встановіть True для кожної точки, яку слід позначити як підсумок.
Як перевірити, чи є точка водоспадної діаграми підсумковою?
Викличте series.is_total(index) з нульовим індексом точки, або прочитайте властивість is_total її об’єкта даних.
Чи is_total API встановлює чи обчислює підсумки?
Ні. Вони повідомляють, чи позначено точку як підсумкову. Надайте значення та їхні прапорці підсумку під час створення серії.
Чи можу я переглянути діаграму водоспаду в існуючому документі Word?
Так. Завантажте документ, знайдіть форми, що містять діаграми, і перевірте кожну серію на ChartSeriesType.WATERFALL перед тим, як досліджувати її точки.
