จัดการชุดข้อมูลแผนภูมิใน Python

ภาพรวม

บทความนี้อธิบายหน้าที่ของ ChartSeries ใน Aspose.Slides for Python โดยมุ่งเน้นที่วิธีการจัดโครงสร้างและการแสดงผลข้อมูลภายในงานนำเสนอ สิ่งเหล่านี้เป็นวัตถุที่ให้พื้นฐานในการกำหนดชุดจุดข้อมูล, ประเภท, และพารามิเตอร์การแสดงผลในแผนภูมิ การทำงานกับ ChartSeries ทำให้ผู้พัฒนาสามารถรวมแหล่งข้อมูลพื้นฐานได้อย่างราบรื่นและควบคุมการแสดงข้อมูลอย่างเต็มที่ ส่งผลให้งานนำเสนอแบบไดนามิกและขับเคลื่อนด้วยข้อมูลที่สื่อสารข้อมูลเชิงลึกและการวิเคราะห์ได้อย่างชัดเจน

ซีรีส์คือแถวหรือคอลัมน์ของตัวเลขที่ถูกพล็อตในแผนภูมิ

chart-series-powerpoint

ตั้งค่าการทับซ้อนของซีรีส์

คุณสมบัติ ChartSeries.overlap ควบคุมวิธีที่แท่งและคอลัมน์ทับซ้อนกันในแผนภูมิ 2 มิติโดยระบุช่วงจาก -100 ถึง 100 เนื่องจากคุณสมบัตินี้เชื่อมโยงกับกลุ่มซีรีส์โดยรวมไม่ใช่กับซีรีส์เดี่ยว จึงเป็นแบบอ่านอย่างเดียวระดับซีรีส์ หากต้องการกำหนดค่าการทับซ้อน ให้ใช้คุณสมบัติ parent_series_group.overlap ที่อ่าน/เขียนได้ ซึ่งจะนำค่าการทับซ้อนที่ระบุไปใช้กับซีรีส์ทั้งหมดในกลุ่มนั้น

ด้านล่างเป็นตัวอย่าง Python ที่แสดงวิธีสร้างงานนำเสนอ, เพิ่มแผนภูมิคอลัมน์แบบกลุ่ม, เข้าถึงซีรีส์แผนภูมิกลุ่มแรก, ตั้งค่าการทับซ้อน, แล้วบันทึกผลเป็นไฟล์ PPTX:

import aspose.slides as slides
import aspose.slides.charts as charts

series_overlap = 30

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # เพิ่มแผนภูมิคอลัมน์แบบกลุ่มด้วยข้อมูลเริ่มต้น.
    chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)

    series = chart.chart_data.series[0]
    if series.overlap == 0:
        # ตั้งค่าการทับซ้อนของซีรีส์.
        series.parent_series_group.overlap = series_overlap

    # บันทึกไฟล์งานนำเสนอลงดิสก์.
    presentation.save("series_overlap.pptx", slides.export.SaveFormat.PPTX)

ผลลัพธ์:

การทับซ้อนของซีรีส์

เปลี่ยนสีเติมของซีรีส์

Aspose.Slides ทำให้การปรับสีเติมของซีรีส์ในแผนภูมิเป็นเรื่องง่าย ช่วยให้คุณไฮไลท์จุดข้อมูลเฉพาะและสร้างแผนภูมิที่ดูน่าสนใจ ผ่านอ็อบเจ็กต์ Format ที่รองรับรูปแบบการเติมหลายแบบ, การกำหนดสี, และตัวเลือกสไตล์ขั้นสูงอื่น ๆ หลังจากเพิ่มแผนภูมิลงในสไลด์และเข้าถึงซีรีส์ที่ต้องการ เพียงรับซีรีส์และกำหนดสีเติมที่เหมาะสม นอกจากการเติมสีทึบแล้ว คุณยังสามารถใช้การเติมแบบไล่สีหรือแบบลวดลายเพื่อเพิ่มความยืดหยุ่นในการออกแบบ เมื่อตั้งค่าสีตามที่ต้องการแล้ว ให้บันทึกงานนำเสนอเพื่อบันทึกการเปลี่ยนแปลง

โค้ด Python ด้านล่างแสดงวิธีเปลี่ยนสีของซีรีส์แรก:

import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw

series_color = draw.Color.blue

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # เพิ่มแผนภูมิคอลัมน์แบบกลุ่มด้วยข้อมูลเริ่มต้น.
    chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)

    # ตั้งค่าสีของซีรีส์แรก.
    series = chart.chart_data.series[0]
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = series_color

    # บันทึกไฟล์งานนำเสนอลงดิสก์.
    presentation.save("series_color.pptx", slides.export.SaveFormat.PPTX)

ผลลัพธ์:

สีของซีรีส์

เปลี่ยนชื่อซีรีส์

Aspose.Slides มีวิธีง่ายๆ ในการแก้ไขชื่อของซีรีส์ในแผนภูมิ ทำให้การตั้งป้ายข้อมูลเป็นเรื่องชัดเจนและมีความหมายมากขึ้น โดยการเข้าถึงเซลล์ worksheet ที่เกี่ยวข้องในข้อมูลแผนภูมิ ผู้พัฒนาสามารถปรับแต่งการแสดงผลของข้อมูลได้ การแก้ไขนี้เป็นประโยชน์เมื่อต้องอัปเดตหรือชี้แจงชื่อซีรีส์ตามบริบทของข้อมูล หลังจากเปลี่ยนชื่อซีรีส์แล้ว สามารถบันทึกงานนำเสนอเพื่อบันทึกการเปลี่ยนแปลง

ด้านล่างเป็นโค้ด Python ที่แสดงกระบวนการนี้:

import aspose.slides as slides
import aspose.slides.charts as charts

series_name = "New name"

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # เพิ่มแผนภูมิคอลัมน์แบบกลุ่มด้วยข้อมูลเริ่มต้น.
    chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
    
    # ตั้งชื่อของซีรีส์แรก.
    series_cell = chart.chart_data.chart_data_workbook.get_cell(0, 0, 1)
    series_cell.value = series_name
    
    # บันทึกไฟล์งานนำเสนอลงดิสก์.
    presentation.save("series_name.pptx", slides.export.SaveFormat.PPTX)

โค้ด Python ต่อไปนี้แสดงวิธีทางเลือกในการเปลี่ยนชื่อซีรีส์:

import aspose.slides as slides
import aspose.slides.charts as charts

series_name = "New name"

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # เพิ่มแผนภูมิคอลัมน์แบบกลุ่มด้วยข้อมูลเริ่มต้น.
    chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
    series = chart.chart_data.series[0]
    
    # ตั้งชื่อของซีรีส์แรก.
    series.name.as_cells[0].value = series_name

    # บันทึกไฟล์งานนำเสนอลงดิสก์.
    presentation.save("series_name.pptx", slides.export.SaveFormat.PPTX) 

ผลลัพธ์:

ชื่อของซีรีส์

รับสีเติมอัตโนมัติของซีรีส์

Aspose.Slides for Python ให้คุณรับสีเติมอัตโนมัติสำหรับซีรีส์ในพื้นที่พล็อต หลังจากสร้างอินสแตนซ์ของคลาส Presentation คุณสามารถอ้างอิงสไลด์ที่ต้องการโดยใช้ดัชนี แล้วเพิ่มแผนภูมิตามประเภทที่ต้องการ (เช่น ChartType.CLUSTERED_COLUMN) โดยการเข้าถึงซีรีส์ในแผนภูมิ คุณสามารถรับสีเติมอัตโนมัติได้

โค้ด Python ด้านล่างอธิบายขั้นตอนนี้อย่างละเอียด

import aspose.slides as slides
import aspose.slides.charts as charts

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # เพิ่มแผนภูคอลัมน์แบบกลุ่มด้วยข้อมูลเริ่มต้น.
    chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)

    for i in range(len(chart.chart_data.series)):
        # รับสีเติมของซีรีส์.
        color = chart.chart_data.series[i].get_automatic_series_color()
        print(f"Series {i} color: {color.name}")

ผลลัพธ์ตัวอย่าง:

Series 0 color: ff4f81bd
Series 1 color: ffc0504d
Series 2 color: ff9bbb59

ตั้งค่าสีเติมกลับค่าให้กับซีรีส์

เมื่อซีรีส์ของคุณมีค่าบวกและลบ การเติมสีเดียวกันให้ทุกคอลัมน์หรือแท่งอาจทำให้แผนภูมิอ่านยาก Aspose.Slides for Python ให้คุณกำหนดสีเติมกลับค่า—การเติมสีแยกที่ถูกนำไปใช้โดยอัตโนมัติกับจุดข้อมูลที่อยู่ต่ำกว่าศูนย์—เพื่อให้ค่าลบโดดเด่นในชั่ววินาที ในส่วนนี้คุณจะได้เรียนรู้วิธีเปิดใช้งานตัวเลือกนั้น, เลือกสีที่เหมาะสม, และบันทึกงานนำเสนอที่อัปเดต

ตัวอย่างโค้ดต่อไปนี้แสดงการทำงาน:

import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw

invert_color = draw.Color.red

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200)
    workBook = chart.chart_data.chart_data_workbook

    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()

    # เพิ่มหมวดหมู่ใหม่.
    chart.chart_data.categories.add(workBook.get_cell(0, 1, 0, "Category 1"))
    chart.chart_data.categories.add(workBook.get_cell(0, 2, 0, "Category 2"))
    chart.chart_data.categories.add(workBook.get_cell(0, 3, 0, "Category 3"))

    # เพิ่มซีรีส์ใหม่.
    series = chart.chart_data.series.add(workBook.get_cell(0, 0, 1, "Series 1"), chart.type)

    # เติมข้อมูลให้ซีรีส์.
    series.data_points.add_data_point_for_bar_series(workBook.get_cell(0, 1, 1, -20))
    series.data_points.add_data_point_for_bar_series(workBook.get_cell(0, 2, 1, 50))
    series.data_points.add_data_point_for_bar_series(workBook.get_cell(0, 3, 1, -30))

    # ตั้งค่าการสีสำหรับซีรีส์.
    series_color = series.get_automatic_series_color()
    series.invert_if_negative = True
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = series_color
    series.inverted_solid_fill_color.color = invert_color
    presentation.save("inverted_solid_fill_color.pptx", slides.export.SaveFormat.PPTX)

ผลลัพธ์:

สีเติมแน-solid ที่กลับค่า

คุณสามารถกลับสีเติมสำหรับจุดข้อมูลเดียวแทนที่จะเป็นทั้งซีรีส์ได้ เพียงเข้าถึง ChartDataPoint ที่ต้องการและตั้งค่า invert_if_negative เป็น True

โค้ดต่อไปนี้แสดงวิธีทำ:

import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.pydrawing as draw

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

	chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 20, 20, 500, 200, True)
	chart.chart_data.series.clear()

	series = series.add(chart.chart_data.chart_data_workbook.get_cell(0, "B1"), chart.type)

	series.data_points.add_data_point_for_bar_series(chart.chart_data.chart_data_workbook.get_cell(0, "B2", -5))
	series.data_points.add_data_point_for_bar_series(chart.chart_data.chart_data_workbook.get_cell(0, "B3", 3))
	series.data_points.add_data_point_for_bar_series(chart.chart_data.chart_data_workbook.get_cell(0, "B4", -3))
	series.data_points.add_data_point_for_bar_series(chart.chart_data.chart_data_workbook.get_cell(0, "B5", 1))

	series.invert_if_negative = False
	series.data_points[2].invert_if_negative = True

	presentation.save("data_point_invert_color_if_negative.pptx", slides.export.SaveFormat.PPTX)

ล้างข้อมูลสำหรับจุดข้อมูลเฉพาะ

บางครั้งแผนภูมิมีค่าทดสอบ, ค่าขยาย, หรือรายการล้าสมัยที่ต้องการลบโดยไม่ต้องสร้างซีรีส์ใหม่ทั้งหมด Aspose.Slides for Python ให้คุณเลือกจุดข้อมูลใดก็ได้โดยใช้ดัชนี, ล้างเนื้อหา, และรีเฟรชพล็อตทันที ทำให้จุดที่เหลือเลื่อนตำแหน่งและแกนปรับขนาดอัตโนมัติ

ตัวอย่างโค้ดต่อไปนี้แสดงการทำงาน:

import aspose.slides as slides
import aspose.slides.charts as charts

with slides.Presentation("test_chart.pptx") as presentation:
    slide = presentation.slides[0]
    chart = slide.shapes[0]
    series = chart.chart_data.series[0]

    for data_point in series.data_points:
        data_point.x_value.as_cell.value = None
        data_point.y_value.as_cell.value = None

    series.data_points.clear()

    presentation.save("clear_data_points.pptx", slides.export.SaveFormat.PPTX)

ตั้งค่าความกว้างของช่องว่างระหว่างซีรีส์

ความกว้างของช่องว่างควบคุมปริมาณพื้นที่ว่างระหว่างคอลัมน์หรือแท่งที่อยู่ติดกัน—ช่องว่างกว้างทำให้แต่ละประเภทเด่นชัดขึ้น, ส่วนช่องว่างแคบทำให้แสดงผลกระชับและหนาแน่น มากยิ่งขึ้น ผ่าน Aspose.Slides for Python คุณสามารถปรับพารามิเตอร์นี้สำหรับซีรีส์ทั้งหมด เพื่อให้ได้สมดุลภาพที่ต้องการโดยไม่ต้องเปลี่ยนแปลงข้อมูลพื้นฐาน

โค้ดต่อไปนี้แสดงวิธีตั้งค่าความกว้างของช่องว่างสำหรับซีรีส์:

import aspose.slides as slides
import aspose.slides.charts as charts

gap_width = 30

# สร้างงานนำเสนอเปล่า.
with slides.Presentation() as presentation:

    # เข้าถึงสไลด์แรก.
    slide = presentation.slides[0]

    # เพิ่มแผนภูมด้วยข้อมูลเริ่มต้น.
    chart = slide.shapes.add_chart(charts.ChartType.STACKED_COLUMN, 20, 20, 500, 200)

    # บันทึกงานนำเสนอลงดิสก์.
    presentation.save("default_gap_width.pptx", slides.export.SaveFormat.PPTX)

    # ตั้งค่าความกว้างช่องว่าง gap_width.
    series = chart.chart_data.series[0]
    series.parent_series_group.gap_width = gap_width

    # บันทึกงานนำเสนอลงดิสก์.
    presentation.save("gap_width_30.pptx", slides.export.SaveFormat.PPTX)

ผลลัพธ์:

ความกว้างของช่องว่าง

FAQ

มีขีดจำกัดจำนวนซีรีส์ที่แผนภูมิหนึ่งสามารถมีได้หรือไม่?

Aspose.Slides ไม่ได้กำหนดขีดจำกัดคงที่สำหรับจำนวนซีรีส์ที่คุณเพิ่ม ขีดจำกัดเชิงปฏิบัติจะแตกต่างตามความสามารถในการอ่านแผนภูมิและหน่วยความจำที่แอปพลิเคชันของคุณมี

ถ้าคอลัมน์ในกลุ่มใกล้กันเกินไปหรือห่างกันเกินไปควรทำอย่างไร?

ปรับค่าการตั้งค่า gap_width สำหรับซีรีส์นั้น (หรือกลุ่มซีรีส์แม่) การเพิ่มค่าจะทำให้คอลัมน์ห่างกันมากขึ้น, การลดค่าจะทำให้คอลัมน์ใกล้กันมากขึ้น