ปรับแต่งพื้นที่พล็อตของแผนภูมิในงานนำเสนอด้วย С++

ภาพรวม

บทความนี้แสดงวิธีทำงานกับพื้นที่พล็อตของแผนภูมิใน Aspose.Slides โดยอธิบายวิธีการรับตำแหน่งและขนาดจริงของพื้นที่พล็อตโดยตรวจสอบการจัดวางแผนภูมิแล้วอ่านค่า X, Y, ความกว้าง และความสูงของมัน

นอกจากนี้ยังแสดงวิธีกำหนดโหมดการจัดวางของพื้นที่พล็อตเมื่อการจัดวางถูกตั้งค่าด้วยตนเอง โดยใช้ LayoutTargetType เพื่อกำหนดว่าพื้นที่พล็อตจะคำนวณจากส่วนภายในหรือส่วนภายนอกพร้อมกับแกนและป้ายแกน

รับความกว้างและความสูงของพื้นที่พล็อตแผนภูมิ

Aspose.Slides สำหรับ C++ มี API ที่เรียบง่ายสำหรับ .

  1. สร้างอินสแตนซ์ของคลาส การนำเสนอ
  2. เข้าถึงสไลด์แรก
  3. เพิ่มแผนภูมิกับข้อมูลเริ่มต้น
  4. เรียกเมธอด IChart::ValidateChartLayout() ก่อนเพื่อรับค่าจริง
  5. รับตำแหน่ง X จริง (ซ้าย) ขององค์ประกอบแผนภูมิสัมพันธ์กับมุมซ้ายบนของแผนภูมิ
  6. รับตำแหน่งบนจริงขององค์ประกอบแผนภูมิสัมพันธ์กับมุมซ้ายบนของแผนภูมิ
  7. รับความกว้างจริงขององค์ประกอบแผนภูมิ
  8. รับความสูงจริงขององค์ประกอบแผนภูมิ
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)