Vodopádový graf ukazuje, jak se počáteční hodnota mění prostřednictvím řady nárůstů a poklesů. Například jej můžete použít ve finanční zprávě k zobrazení toho, jak prodeje, výdaje a další příjmy přispívají k konečnému zůstatku.
V tomto tutoriálu vytvoříte vodopádový graf v dokumentu Word pomocí Pythonu a Aspose.Words for Python via .NET. Také se naučíte, jak identifikovat celkové body v grafu a prozkoumat vodopádové grafy v existujících dokumentech.
Python knihovna pro vytváření vodopádových grafů ve Wordu
Aspose.Words for Python via .NET umožňuje vám vytvářet a upravovat dokumenty Word v Pythonu. Můžete jej použít k přidání grafů do zpráv a pracovat s řadami grafů a datovými body.
Nainstalujte knihovnu z PyPI:
pip install aspose-words
Použijte Aspose.Words for Python via .NET 26.10 nebo novější pro kompletní tutoriál. Tato verze představila rozhraní API používaná k ověření, zda je bod vodopádového grafu celkem.
Pro požadavky na platformu a další podrobnosti o instalaci se podívejte na instalační dokumentaci.
Pochopte ukázkový vodopádový graf
Příklady používají následující data k zobrazení změn od počátečního zůstatku po konečný zůstatek:
| Category | Value | Point type |
|---|---|---|
| Počáteční zůstatek | 100 | Celkem |
| Prodeje | +40 | Nárůst |
| Výdaje | −20 | Pokles |
| Mezisoučet | 120 | Celkem |
| Jiný příjem | +10 | Nárůst |
| Konečný zůstatek | 130 | Celkem |
Prodeje, výdaje a další příjmy představují změny. Počáteční zůstatek, mezisoučet a konečný zůstatek představují hodnoty v konkrétních fázích.
Chcete‑li vytvořit řadu grafu, poskytnete tři seznamy ve stejném pořadí:
- Categories: Štítky pro body grafu.
- Values: Změny a explicitně dodané celkové hodnoty.
- Total flags: Booleovské hodnoty, které označují odpovídající body jako součty.
Příznaky identifikují celkové body; neprovádějí jejich výpočet. V tomto příkladu je mezisoučet zadán jako 120 a konečný zůstatek je zadán jako 130.
Vytvoření vodopádového grafu ve Wordu pomocí Pythonu
Postupujte podle těchto kroků k vytvoření grafu:
- Vytvořte
DocumentaDocumentBuilder. - Vložte graf pomocí
ChartType.WATERFALL. - Nastavte název grafu a vymažte výchozí řadu.
- Přidejte kategorie, hodnoty a příznaky celku.
- Uložte dokument jako soubor DOCX.
Následující příklad vytváří kompletní graf:
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")
Metoda add() specifická pro vodopád přijímá název řady, kategorie, hodnoty a booleanové příznaky. Každá položka na daném indexu popisuje stejný bod grafu. Přestože je booleanový argument pojmenován is_subtotal, dokumentovaný příklad jej používá k označení počáteční hodnoty, mezisoučtu a konečné hodnoty jako součty.
Výsledný waterfall-chart.docx obsahuje graf se šesti body, který zobrazuje počáteční zůstatek, změny, mezisoučet a konečný zůstatek.

Vytvořte vodopádové grafy ve Wordu pomocí Pythonu.
Zkontrolujte, zda je bod vodopádového grafu celkem
Můžete zkontrolovat označení každého bodu pomocí series.is_total(index). Přidejte následující smyčku po volání chart.series.add(...) v předchozím příkladu:
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}")
Pro ukázková data je očekávaný výstup:
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
Metoda is_total() přijímá index začínající od nuly a vrací True, pokud je bod označen jako součet. Neurčuje, zda je bod počáteční zůstatek, mezisoučet nebo konečný součet.
Zkontrolujte celkovou hodnotu pomocí ChartDataPoint.is_total
Pokud již máte datový bod grafu, můžete přečíst jeho vlastnost is_total. Následující příklad kontroluje mezisoučet na indexu 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 je pouze pro čtení vlastnost pro vodopádové grafy. Stejně jako series.is_total(index), uvádí označení bodu; nenastavuje ani nepočítá celkovou hodnotu.
Prozkoumejte vodopádový graf v existujícím dokumentu Word
Můžete také načíst existující dokument Word a vyhledat v něm řady vodopádových grafů. Následující samostatný příklad kontroluje každý tvar, přeskočí tvary bez grafů a prozkoumá každou nalezenou řadu vodopádových grafů.
Nahraďte waterfall-chart.docx cestou k vašemu dokumentu:
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.")
Příklad hlásí každý bod podle jeho nulového indexu. Zpracovává více vodopádových sérií, pokud jsou přítomny, a vypíše zprávu, pokud žádné nenajde. Vlastnost series_type umožňuje kódu zkontrolovat ChartSeriesType.WATERFALL před voláním is_total().
Získejte bezplatnou licenci
Můžete požádat o bezplatnou dočasnou licenci k vyzkoušení Aspose.Words for Python via .NET. Aplikujte licenci ve své aplikaci před spuštěním příkladů.
Závěr
Můžete vytvořit vodopádový graf v dokumentu Word pomocí Pythonu a programově identifikovat jeho celkové body. Použijte stejný přístup k přidání grafů do generovaných zpráv nebo k prozkoumání vodopádových sérií v existujících dokumentech.
Často kladené otázky
Jak vytvořit vodopádový graf ve Wordu pomocí Pythonu?
Vložte graf pomocí ChartType.WATERFALL, přidejte sérii s kategoriemi, hodnotami a příznaky celku a uložte dokument jako soubor DOCX.
Jak zadat celkové body ve vodopádovém grafu?
Při přidávání řady předávejte seznam typu Boolean argumentem is_subtotal. Nastavte položku na True pro každý bod, který by měl být označen jako celkový.
Jak mohu zjistit, zda je bod vodopádového grafu celkem?
Zavolejte series.is_total(index) s nulovým indexem bodu nebo přečtěte vlastnost is_total jeho objektu datového bodu.
Nastavují API is_total celkové hodnoty, nebo je vypočítávají?
Ne. Udává, zda je bod označen jako celkový. Poskytněte hodnoty a jejich příznaky celku při vytváření řady.
Mohu prohlédnout vodopádový graf v existujícím dokumentu Word?
Ano. Načtěte dokument, najděte tvary obsahující grafy, a před prozkoumáním jejich bodů zkontrolujte každou sérii na ChartSeriesType.WATERFALL.
