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

ตั้งค่าการทับซ้อนของซีรีส์
คุณสมบัติ 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)
ผลลัพธ์:

คุณสามารถกลับสีเติมสำหรับจุดข้อมูลเดียวแทนที่จะเป็นทั้งซีรีส์ได้ เพียงเข้าถึง 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 สำหรับซีรีส์นั้น (หรือกลุ่มซีรีส์แม่) การเพิ่มค่าจะทำให้คอลัมน์ห่างกันมากขึ้น, การลดค่าจะทำให้คอลัมน์ใกล้กันมากขึ้น