Водоспадна діаграма показує, як початкове значення змінюється через серію збільшень і зменшень. Наприклад, ви можете використати її у фінансовому звіті, щоб показати, як продажі, витрати та інший дохід сприяють підсумковому балансу.

У цьому підручнику ви створите водоспадну діаграму у документі 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

Виконайте наступні кроки, щоб створити діаграму:

  1. Створіть Document і DocumentBuilder.
  2. Вставте діаграму, використовуючи ChartType.WATERFALL.
  3. Встановіть заголовок діаграми та очистіть серії за замовчуванням.
  4. Додайте категорії, значення та прапорці підсумку.
  5. Збережіть документ у файл 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.

Створення каскадних діаграм у 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 перед тим, як досліджувати її точки.

Дивіться також