Wykres wodospadowy pokazuje, jak wartość początkowa zmienia się w wyniku serii wzrostów i spadków. Na przykład można go użyć w raporcie finansowym, aby pokazać, jak sprzedaż, wydatki i inne przychody przyczyniają się do salda końcowego.

W tym samouczku utworzysz wykres wodospadowy w dokumencie Word przy użyciu Pythona i Aspose.Words for Python via .NET. Dowiesz się także, jak zidentyfikować punkty sumy w wykresie oraz jak przeglądać wykresy wodospadowe w istniejących dokumentach.

Biblioteka Pythona do tworzenia wykresów wodospadowych w Word

Aspose.Words for Python via .NET pozwala tworzyć i modyfikować dokumenty Word w Pythonie. Możesz go używać do dodawania wykresów do raportów oraz pracy z seriami wykresów i punktami danych.

Zainstaluj bibliotekę z PyPI:

pip install aspose-words

Użyj Aspose.Words for Python via .NET 26.10 or later, aby uzyskać pełny samouczek. Ta wersja wprowadziła interfejsy API używane do sprawdzania, czy punkt wykresu wodospadowego jest sumą całkowitą.

Aby uzyskać informacje o wymaganiach platformy i innych szczegółach instalacji, zobacz dokumentację instalacji.

Zrozumienie przykładowego wykresu wodospadowego

Przykłady używają następujących danych, aby pokazać zmiany od salda początkowego do salda końcowego:

KategoriaWartośćTyp punktu
Saldo początkowe100Łącznie
Sprzedaż+40Wzrost
Wydatki−20Spadek
Suma częściowa120Łącznie
Inny przychód+10Wzrost
Saldo końcowe130Łącznie

Punkty sprzedaży, wydatków i innych przychodów reprezentują zmiany. Saldo otwarcia, suma pośrednia i saldo zamknięcia reprezentują wartości na określonych etapach.

Aby utworzyć serię wykresu, podasz trzy listy w tej samej kolejności:

  • Categories: Etykiety punktów wykresu.
  • Values: Zmiany i wyraźnie podane wartości sumy.
  • Total flags: Wartości logiczne określające, które punkty są sumami.

Flagi identyfikują całkowite punkty; nie obliczają ich. W tym przykładzie suma częściowa jest podana jako 120, a saldo końcowe jest podane jako 130.

Utwórz wykres wodospadowy w programie Word przy użyciu Pythona

Postępuj zgodnie z poniższymi krokami, aby utworzyć wykres:

  1. Utwórz Document i DocumentBuilder.
  2. Wstaw wykres używając ChartType.WATERFALL.
  3. Ustaw tytuł wykresu i wyczyść domyślną serię.
  4. Dodaj kategorie, wartości i flagi sumy.
  5. Zapisz dokument jako plik DOCX.

Poniższy przykład tworzy kompletny wykres:

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 specyficzna dla wykresu wodospadowego add() przyjmuje nazwę serii, kategorie, wartości oraz flagi logiczne. Każdy element o danym indeksie opisuje ten sam punkt wykresu. Chociaż argument logiczny nosi nazwę is_subtotal, w udokumentowanym przykładzie jest używany do oznaczenia wartości początkowej, pośredniego podsumowania oraz wartości końcowej jako sumy.

Wynikowy waterfall-chart.docx zawiera wykres sześciopunktowy przedstawiający saldo początkowe, zmiany, sumę częściową i saldo końcowe.

Tworzenie wykresów wodospadowych w programie Word przy użyciu Pythona.

Tworzenie wykresów wodospadowych w programie Word przy użyciu Pythona.

Sprawdź, czy punkt wykresu wodospadowego jest sumą całkowitą

Możesz sprawdzić oznaczenie każdego punktu za pomocą series.is_total(index). Dodaj następującą pętlę po wywołaniu chart.series.add(...) w poprzednim przykładzie:

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}")

Dla danych przykładowych oczekiwany wynik to:

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() przyjmuje indeks zerowy i zwraca True, jeśli punkt jest oznaczony jako suma. Nie określa, czy punkt jest saldem otwarcia, pośrednim podsumowaniem czy ostateczną sumą.

Sprawdź sumę przy użyciu ChartDataPoint.is_total

Jeśli już masz punkt danych wykresu, możesz odczytać jego właściwość is_total. Poniższy przykład sprawdza sumę częściową pod indeksem 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 jest właściwością tylko do odczytu dla wykresów wodospadowych. Podobnie jak series.is_total(index), zgłasza oznaczenie punktu; nie ustawia ani nie oblicza sumy.

Sprawdź wykres wodospadowy w istniejącym dokumencie Word

Możesz także załadować istniejący dokument Word i przeszukać go pod kątem serii wykresu wodospadowego. Poniższy samodzielny przykład sprawdza każdy kształt, pomija kształty bez wykresów i analizuje każdą znalezioną serię wykresu wodospadowego.

Zastąp waterfall-chart.docx ścieżką do swojego 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.")

Przykład raportuje każdy punkt według jego indeksu zerowego. Przetwarza wiele serii wodospadowych, jeśli są obecne, i wyświetla komunikat, jeśli ich nie znajdzie. Właściwość series_type pozwala kodowi sprawdzić ChartSeriesType.WATERFALL przed wywołaniem is_total().

Uzyskaj darmową licencję

Możesz poprosić o bezpłatną tymczasową licencję, aby ocenić Aspose.Words for Python via .NET. Zastosuj licencję w swojej aplikacji przed uruchomieniem przykładów.

Podsumowanie

Możesz utworzyć wykres wodospadowy w dokumencie Word przy użyciu Pythona i programowo zidentyfikować jego punkty sumaryczne. Użyj tego samego podejścia, aby dodać wykresy do generowanych raportów lub sprawdzić serie wodospadowe w istniejących dokumentach.

Najczęściej zadawane pytania

Jak utworzyć wykres wodospadowy w Wordzie przy użyciu Pythona?

Wstaw wykres przy użyciu ChartType.WATERFALL, dodaj serię z kategoriami, wartościami i flagami sumy, a następnie zapisz dokument jako plik DOCX.

Jak określić całkowite punkty w wykresie wodospadowym?

Przekaż listę wartości logicznych przez argument is_subtotal podczas dodawania serii. Ustaw pozycję na True dla każdego punktu, który powinien być oznaczony jako suma całkowita.

Jak mogę sprawdzić, czy punkt wykresu wodospadowego jest sumą?

Wywołaj series.is_total(index) z zerowo‑indeksowanym indeksem punktu lub odczytaj właściwość is_total jego obiektu punktu danych.

Czy API is_total ustawia, czy oblicza sumy?

Nie. Raportują, czy punkt jest oznaczony jako suma. Podaj wartości i ich flagi sumy przy tworzeniu serii.

Czy mogę sprawdzić wykres wodospadowy w istniejącym dokumencie Word?

Tak. Załaduj dokument, znajdź kształty zawierające wykresy i sprawdź każdą serię pod kątem ChartSeriesType.WATERFALL przed zbadaniem jej punktów.

Zobacz także