ปรับแต่งจุดข้อมูลในแผนภูมิ Treemap และ Sunburst บน Android
บทนำ
ในหมวดอื่นของแผนภูมิ PowerPoint มีประเภทเชิงลำดับขั้นสองประเภทคือ Treemap และ Sunburst (ซึ่งยังรู้จักกันในชื่อ Sunburst Graph, Sunburst Diagram, Radial Chart, Radial Graph หรือ Multi Level Pie Chart) แผนภูมิเหล่านี้แสดงข้อมูลเชิงลำดับขั้นที่จัดระเบียบเป็นต้นไม้ ตั้งแต่ใบจนถึงยอดของกิ่ง ใบถูกกำหนดโดยจุดข้อมูลของซีรีส์ และระดับการจัดกลุ่มซ้อนกันแต่ละระดับต่อไปถูกกำหนดโดยหมวดที่สอดคล้องกัน Aspose.Slides for Android ผ่าน Java อนุญาตให้จัดรูปแบบจุดข้อมูลของแผนภูมิ Sunburst และ Treemap ใน Java
นี่คือแผนภูมิ Sunburst ที่ข้อมูลในคอลัมน์ Series1 กำหนดโหนดใบไม้ ในขณะที่คอลัมน์อื่นกำหนดข้อมูลเชิงลำดับขั้น:
เริ่มต้นด้วยการเพิ่มแผนภูมิ Sunburst ใหม่ไปยังการนำเสนอ:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);
// ...
} finally {
if (pres != null) pres.dispose();
}
หากต้องการจัดรูปแบบจุดข้อมูลของแผนภูมิ เราควรใช้สิ่งต่อไปนี้:
IChartDataPointLevelsManager, IChartDataPointLevel classes และเมธอด IChartDataPoint.getDataPointLevels ให้การเข้าถึงการจัดรูปแบบจุดข้อมูลของแผนภูมิ Treemap และ Sunburst. IChartDataPointLevelsManager ใช้สำหรับเข้าถึงหมวดหลายระดับ - มันเป็นตัวแทนของคอนเทนเนอร์ของวัตถุ IChartDataPointLevel. โดยพื้นฐานแล้วมันเป็น wrapper สำหรับ IChartCategoryLevelsManager พร้อมคุณสมบัติที่เพิ่มเฉพาะสำหรับจุดข้อมูล. คลาส IChartDataPointLevel มีสองเมธอด: getFormat และ getDataLabel ซึ่งให้การเข้าถึงการตั้งค่าที่เกี่ยวข้อง.
แสดงค่าจุดข้อมูล
แสดงค่าของจุดข้อมูล “Leaf 4”:
IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);
ตั้งค่าป้ายและสีของจุดข้อมูล
ตั้งค่าป้ายข้อมูลของ “Branch 1” ให้แสดงชื่อซีรีส์ (“Series1”) แทนชื่อหมวด แล้วตั้งค่าสีข้อความเป็นสีเหลือง:
IDataLabel branch1Label = dataPoints.get_Item(0).getDataPointLevels().get_Item(0).getLabel();
branch1Label.getDataLabelFormat().setShowCategoryName(false);
branch1Label.getDataLabelFormat().setShowSeriesName(true);
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.YELLOW);
ตั้งค่าสีกิ่งของจุดข้อมูล
เปลี่ยนสีของกิ่ง “Steam 4”:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 100, 100, 450, 400);
IChartDataPointCollection dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
IChartDataPointLevel stem4branch = dataPoints.get_Item(9).getDataPointLevels().get_Item(1);
stem4branch.getFormat().getFill().setFillType(FillType.Solid);
stem4branch.getFormat().getFill().getSolidFillColor().setColor(Color.RED);
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
คำถามที่พบบ่อย
ฉันสามารถเปลี่ยนลำดับ (การจัดเรียง) ของเซกเมนต์ใน Sunburst/Treemap ได้หรือไม่?
ไม่ได้ PowerPoint จัดเรียงเซกเมนต์โดยอัตโนมัติ (โดยทั่วไปตามค่าลดลงและตามเข็มนาฬิกา) Aspose.Slides ทำตามพฤติกรรมนี้เช่นกัน: ไม่สามารถเปลี่ยนลำดับโดยตรงได้; ต้องทำโดยการเตรียมข้อมูลล่วงหน้า.
ธีมการนำเสนอมีผลต่อสีของเซกเมนต์และป้ายอย่างไร?
สีของแผนภูมิจะสืบทอดจาก theme/palette ของการนำเสนอ เว้นแต่คุณจะตั้งค่าเติมสี/ฟอนต์อย่างชัดเจน เพื่อผลลัพธ์ที่สอดคล้องกัน ควรกำหนดการเติมสีทึบและการจัดรูปแบบข้อความที่ระดับที่ต้องการ.
การส่งออกเป็น PDF/PNG จะรักษาสีกิ่งที่กำหนดเองและการตั้งค่าป้ายไว้หรือไม่?
ใช่ เมื่อส่งออกการนำเสนอ การตั้งค่าแผนภูมิ (การเติมสี, ป้าย) จะถูกรักษาในรูปแบบไฟล์ที่ส่งออก เนื่องจาก Aspose.Slides เรนเดอร์ด้วยการจัดรูปแบบของแผนภูมิที่กำหนดไว้.
ฉันสามารถคำนวณพิกัดจริงของป้าย/องค์ประกอบเพื่อนำไปวาง overlay ส่วนกำหนดเองบนแผนภูมิได้หรือไม่?
ใช่ หลังจากการจัดวางแผนภูมิได้รับการตรวจสอบแล้ว ค่า x และ y จริงจะพร้อมใช้งานสำหรับองค์ประกอบ (เช่น DataLabel) ซึ่งช่วยในการกำหนดตำแหน่ง overlay อย่างแม่นยำ.