จัดการตัวทำเครื่องหมายข้อมูลแผนภูมิในงานนำเสนอโดยใช้ PHP
ภาพรวม
บทความนี้อธิบายวิธีการทำงานกับตัวทำเครื่องหมายข้อมูลแผนภูมิใน Aspose.Slides โดยจะแสดงวิธีสร้างแผนภูมิ, เข้าถึงซีรีส์และจุดข้อมูลของมัน, ใช้การเติมภาพบนตัวทำเครื่องหมายในระดับจุดข้อมูล, ปรับขนาดตัวทำเครื่องหมาย, และบันทึกการนำเสนอที่อัปเดต นอกจากนี้ยังระบุว่ารูปร่างมาตรฐานของตัวทำเครื่องหมายสามารถใช้ได้ผ่าน enumerations MarkerStyleType และลักษณะที่ปรากฏของตัวทำเครื่องหมายจะถูกเก็บรักษาเมื่อส่งออกแผนภูมิเป็นรูปแบบเรสเตอร์หรือ SVG.
ตั้งค่าตัวทำเครื่องหมายแผนภูมิ
ตัวทำเครื่องหมายสามารถตั้งค่าได้บนจุดข้อมูลของแผนภูมิในซีรีส์ที่ระบุ เพื่อกำหนดตัวเลือกของตัวทำเครื่องหมายแผนภูมิ โปรดทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Presentation.
- สร้างแผนภูมิปริยาย.
- ตั้งค่าภาพ.
- เลือกซีรีส์แผนภูมิแรก.
- เพิ่มจุดข้อมูลใหม่.
- บันทึกการนำเสนอลงดิสก์.
ในตัวอย่างด้านล่างนี้ เราได้ตั้งค่าตัวทำเครื่องหมายแผนภูมิในระดับจุดข้อมูล.
# สร้างงานนำเสนอเปล่า
$pres = new Presentation();
try {
# เข้าถึงสไลด์แรก
$slide = $pres->getSlides()->get_Item(0);
# สร้างแผนภูมิปริยาย
$chart = $slide->getShapes()->addChart(ChartType::LineWithMarkers, 0, 0, 400, 400);
# รับดัชนี WorkSheet ของข้อมูลแผนภูมิปริยาย
$defaultWorksheetIndex = 0;
# รับ WorkSheet ของข้อมูลแผนภูมิ
$fact = $chart->getChartData()->getChartDataWorkbook();
# ลบซีรีส์ตัวอย่าง
$chart->getChartData()->getSeries()->clear();
# เพิ่มซีรีส์ใหม่
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 1, 1, "Series 1"), $chart->getType());
# โหลดรูปภาพ 1
$imgx1 = $pres->getImages()->addImage(new Java("java.io.FileInputStream", new Java("java.io.File", "Desert.jpg")));
# โหลดรูปภาพ 2
$imgx2 = $pres->getImages()->addImage(new Java("java.io.FileInputStream", new Java("java.io.File", "Tulips.jpg")));
# ดึงซีรีส์แผนภูมิลำดับแรก
$series = $chart->getChartData()->getSeries()->get_Item(0);
# เพิ่มจุดใหม่ (1:3) ที่นั่น.
$point = $series->getDataPoints()->addDataPointForLineSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 4.5));
$point->getMarker()->getFormat()->getFill()->setFillType(FillType::Picture);
$point->getMarker()->getFormat()->getFill()->getPictureFillFormat()->getPicture()->setImage($imgx1);
$point = $series->getDataPoints()->addDataPointForLineSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 2.5));
$point->getMarker()->getFormat()->getFill()->setFillType(FillType::Picture);
$point->getMarker()->getFormat()->getFill()->getPictureFillFormat()->getPicture()->setImage($imgx2);
$point = $series->getDataPoints()->addDataPointForLineSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 3.5));
$point->getMarker()->getFormat()->getFill()->setFillType(FillType::Picture);
$point->getMarker()->getFormat()->getFill()->getPictureFillFormat()->getPicture()->setImage($imgx1);
$point = $series->getDataPoints()->addDataPointForLineSeries($fact->getCell($defaultWorksheetIndex, 4, 1, 4.5));
$point->getMarker()->getFormat()->getFill()->setFillType(FillType::Picture);
$point->getMarker()->getFormat()->getFill()->getPictureFillFormat()->getPicture()->setImage($imgx2);
# เปลี่ยนตัวทำเครื่องหมายของซีรีส์แผนภูมิ
$series->getMarker()->setSize(15);
# บันทึกงานนำเสนอพร้อมแผนภูมิ
$pres->save("ScatterChart.pptx", SaveFormat::Pptx);
} catch (JavaException $e) {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
คำถามที่พบบ่อย
รูปร่างของตัวทำเครื่องหมายที่มีให้โดยตรงมีอะไรบ้าง?
มีรูปแบบมาตรฐานให้ใช้งาน (วงกลม, สี่เหลี่ยม, เพชร, สามเหลี่ยม ฯลฯ) รายการนี้กำหนดโดยคลาส MarkerStyleType หากคุณต้องการรูปแบบที่ไม่เป็นมาตรฐาน ให้ใช้ตัวทำเครื่องหมายที่เติมด้วยภาพเพื่อจำลองภาพแบบกำหนดเอง.
ตัวทำเครื่องหมายจะถูกเก็บรักษาไว้เมื่อส่งออกแผนภูมิเป็นภาพหรือ SVG หรือไม่?
ใช่ เมื่อเรนเดอร์แผนภูมิเป็น raster formats หรือบันทึก shapes as SVG ตัวทำเครื่องหมายจะคงลักษณะและการตั้งค่าต่าง ๆ เช่น ขนาด, การเติม, และโครงร่างไว้.