แผนภูมิน้ำตกแสดงว่าค่าตั้งต้นเปลี่ยนแปลงอย่างไรผ่านชุดของการเพิ่มและการลดลง ตัวอย่างเช่น คุณสามารถใช้แผนภูมินี้ในรายงานการเงินเพื่อแสดงว่าการขาย ค่าใช้จ่าย และรายได้อื่น ๆ มีส่วนช่วยอย่างไรต่อยอดคงเหลือสุดท้าย
ในบทแนะนำนี้ คุณจะสร้างแผนภูมิน้ำตกในเอกสาร Word โดยใช้ Python และ Aspose.Words for Python via .NET คุณยังจะได้เรียนรู้วิธีระบุจุดรวมในแผนภูมิและตรวจสอบแผนภูมิน้ำตกในเอกสารที่มีอยู่
ไลบรารี Python สำหรับสร้างแผนภูมิ Waterfall ใน Word
Aspose.Words for Python via .NET ช่วยให้คุณสร้างและแก้ไขเอกสาร Word ใน Python ได้ คุณสามารถใช้มันเพื่อเพิ่มแผนภูมิในรายงานและทำงานกับชุดข้อมูลของแผนภูมิและจุดข้อมูล.
ติดตั้งไลบรารีจาก 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
สร้างแผนภูมิน้ำตกใน 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 รับชื่อซีรีส์, หมวดหมู่, ค่า, และแฟล็กแบบ Boolean. แต่ละรายการที่ตำแหน่งดัชนีที่กำหนดอธิบายจุดข้อมูลเดียวกันของแผนภูมิ. แม้ว่าพารามิเตอร์ Boolean จะถูกตั้งชื่อว่า is_subtotal แต่ตัวอย่างที่อธิบายไว้ใช้เพื่อระบุค่าตั้งต้น, ค่ากลางแบบ 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 เป็นคุณสมบัติ read-only สำหรับแผนภูมิน้ำตก. เช่นเดียวกับ series.is_total(index), มันรายงานการกำหนดค่าของจุด; ไม่ได้ตั้งค่า หรือคำนวณผลรวม.
ตรวจสอบแผนภูมิ Waterfall ในเอกสาร 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.")
ตัวอย่างนี้รายงานแต่ละจุดโดยใช้ดัชนีเริ่มจากศูนย์ มันประมวลผลหลายชุดข้อมูลแบบ waterfall หากมีอยู่และพิมพ์ข้อความหากไม่พบชุดใดเลย คุณสมบัติ 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 ของอ็อบเจ็กต์ข้อมูลจุด.
API is_total ทำการตั้งค่าหรือคำนวณผลรวมหรือไม่?
ไม่ พวกเขารายงานว่าจุดใดถูกกำหนดเป็นยอดรวมหรือไม่ ให้ระบุค่าต่าง ๆ และแฟล็กยอดรวมของพวกมันเมื่อสร้างซีรีส์
ฉันสามารถตรวจสอบแผนภูมือน้ำตกในเอกสาร Word ที่มีอยู่ได้หรือไม่?
ใช่. โหลดเอกสาร, ค้นหา shape ที่มีแผนภูมิ, และตรวจสอบแต่ละ series สำหรับ ChartSeriesType.WATERFALL ก่อนตรวจสอบจุดของมัน.
