تخصيص نقاط البيانات في مخططي Treemap و Sunburst باستخدام Java
من بين الأنواع الأخرى لمخططات PowerPoint، هناك نوعان “هرميان” - Treemap و Sunburst (المعروفة أيضًا باسم مخطط Sunburst أو رسم Sunburst أو مخطط قطبي أو رسم قطبي أو مخطط فطيرة متعدد المستويات). تعرض هذه المخططات بيانات هرمية منظمة كشجرة - من الأوراق إلى أعلى الفرع. تُعرّف الأوراق بنقاط بيانات السلسلة، ويُعرّف كل مستوى تجميع متداخل لاحق بالفئة المقابلة. يسمح Aspose.Slides for 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 الفئات و IChartDataPoint.getDataPointLevels الطريقة توفر إمكانية الوصول لتنسيق نقاط البيانات لمخططي Treemap وSunburst. IChartDataPointLevelsManager يُستخدم للوصول إلى الفئات متعددة المستويات - وهو يمثل حاوية كائنات IChartDataPointLevel. أساسًا هو غلاف للـ 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 يطابق هذا السلوك: لا يمكنك تغيير الترتيب مباشرة؛ بل تقوم بذلك عن طريق معالجة البيانات مسبقًا.
كيف يؤثر سمة العرض التقديمي على ألوان القطاعات والتسميات؟
ترث ألوان المخطط السمة/لوحة الألوان ما لم تقم بتعيين التعبئات/الخطوط صراحةً. للحصول على نتائج متسقة، احرص على تثبيت التعبئات الصلبة وتنسيق النص في المستويات المطلوبة.
هل سيحافظ التصدير إلى PDF/PNG على ألوان الفروع المخصصة وإعدادات التسميات؟
نعم. عند تصدير العرض التقديمي، يتم حفظ إعدادات المخطط (التعبئة، التسميات) في صيغ الإخراج لأن Aspose.Slides يقوم بتص rendering المخطط مع تطبيق تنسيقه.
هل يمكنني حساب الإحداثيات الفعلية لتسمية/عنصر لوضع طبقة مخصصة فوق المخطط؟
نعم. بعد التحقق من تخطيط المخطط، تتوفر قيم x وy الفعلية للعناصر (على سبيل المثال، DataLabel)، مما يساعد في تحديد مواضع الطبقات بدقة.