ปรับแต่งพื้นที่พล็อตของแผนภูมิในงานนำเสนอด้วย С++
ภาพรวม
บทความนี้แสดงวิธีทำงานกับพื้นที่พล็อตของแผนภูมิใน Aspose.Slides โดยอธิบายวิธีการรับตำแหน่งและขนาดจริงของพื้นที่พล็อตโดยตรวจสอบการจัดวางแผนภูมิแล้วอ่านค่า X, Y, ความกว้าง และความสูงของมัน
นอกจากนี้ยังแสดงวิธีกำหนดโหมดการจัดวางของพื้นที่พล็อตเมื่อการจัดวางถูกตั้งค่าด้วยตนเอง โดยใช้ LayoutTargetType เพื่อกำหนดว่าพื้นที่พล็อตจะคำนวณจากส่วนภายในหรือส่วนภายนอกพร้อมกับแกนและป้ายแกน
รับความกว้างและความสูงของพื้นที่พล็อตแผนภูมิ
Aspose.Slides สำหรับ C++ มี API ที่เรียบง่ายสำหรับ .
- สร้างอินสแตนซ์ของคลาส การนำเสนอ
- เข้าถึงสไลด์แรก
- เพิ่มแผนภูมิกับข้อมูลเริ่มต้น
- เรียกเมธอด IChart::ValidateChartLayout() ก่อนเพื่อรับค่าจริง
- รับตำแหน่ง X จริง (ซ้าย) ขององค์ประกอบแผนภูมิสัมพันธ์กับมุมซ้ายบนของแผนภูมิ
- รับตำแหน่งบนจริงขององค์ประกอบแผนภูมิสัมพันธ์กับมุมซ้ายบนของแผนภูมิ
- รับความกว้างจริงขององค์ประกอบแผนภูมิ
- รับความสูงจริงขององค์ประกอบแผนภูมิ
auto pres = System::MakeObject<Presentation>(u"test.Pptx");
auto chart = System::ExplicitCast<Chart>(pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 100.0f, 100.0f, 500.0f, 350.0f));
chart->ValidateChartLayout();
double x = chart->get_PlotArea()->get_ActualX();
double y = chart->get_PlotArea()->get_ActualY();
double w = chart->get_PlotArea()->get_ActualWidth();
double h = chart->get_PlotArea()->get_ActualHeight();
// บันทึกงานนำเสนอพร้อมแผนภูมิ
pres->Save(u"Chart_out.pptx", SaveFormat::Pptx);
กำหนดโหมดการจัดวางของพื้นที่พล็อตแผนภูมิ
Aspose.Slides สำหรับ C++ มี API ที่เรียบง่ายสำหรับกำหนดโหมดการจัดวางของพื้นที่พล็อตแผนภูมิ ไฟล์คุณสมบัติ LayoutTargetType ได้ถูกเพิ่มไปยังคลาส ChartPlotArea และ IChartPlotArea หากการจัดวางของพื้นที่พล็อตถูกกำหนดด้วยตนเอง คุณสมบัตินี้จะระบุว่าจัดวางพื้นที่พล็อตโดยส่วนภายใน (ไม่รวมแกนและป้ายแกน) หรือส่วนภายนอก (รวมแกนและป้ายแกน) มีค่าที่เป็นไปได้สองค่า ซึ่งกำหนดใน enum LayoutTargetType
- LayoutTargetType.Inner - ระบุว่าขนาดของพื้นที่พล็อตจะกำหนดขนาดของพื้นที่พล็อต ไม่รวมเครื่องหมายติกและป้ายแกน
- LayoutTargetType.Outer - ระบุว่าขนาดของพื้นที่พล็อตจะกำหนดขนาดของพื้นที่พล็อต รวมทั้งเครื่องหมายติกและป้ายแกน
ตัวอย่างโค้ดอยู่ด้านล่าง
คำถามที่พบบ่อย
ค่าที่ส่งกลับของ ActualX, ActualY, ActualWidth และ ActualHeight มีหน่วยเป็นอะไร?
หน่วยเป็นพอยต์; 1 นิ้ว = 72 พอยต์ นี่คือหน่วยพิกัดของ Aspose.Slides
พื้นที่พล็อตแตกต่างจากพื้นที่แผนภูมิในเชิงเนื้อหาอย่างไร?
พื้นที่พล็อตคือเขตการวาดข้อมูล (ซีรีส์, เส้นกริด, เส้นแนวโน้ม, ฯลฯ) ส่วนพื้นที่แผนภูมิเขารวมถึงองค์ประกอบรอบข้าง (หัวเรื่อง, คำอธิบาย, ฯลฯ) ในแผนภูมิ 3 มิติ พื้นที่พล็อตยังรวมถึงผนัง/พื้นและแกนด้วย
ค่าของ X, Y, ความกว้าง และความสูงของพื้นที่พล็อตถูกตีความอย่างไรเมื่อการจัดวางเป็นแบบแมนนวล?
ค่าที่เป็นส่วนปันส่วน (0–1) ของขนาดโดยรวมของแผนภูมิ; ในโหมดนี้ การวางตำแหน่งอัตโนมัติจะถูกปิดและส่วนปันส่วนที่คุณตั้งค่าจะถูกนำไปใช้
ทำไมตำแหน่งของพื้นที่พล็อตจึงเปลี่ยนหลังจากเพิ่ม/ย้ายคำอธิบาย?
คำอธิบายอยู่ในพื้นที่แผนภูมิที่อยู่นอกพื้นที่พล็อตแต่มีผลต่อการจัดวางและพื้นที่ที่ใช้ได้ ดังนั้นพื้นที่พล็อตอาจเปลี่ยนตำแหน่งเมื่อการวางตำแหน่งอัตโนมัติทำงาน (นี่เป็นพฤติกรรมมาตรฐานของแผนภูมิ PowerPoint)