تخصيص نقاط البيانات في مخططات 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 يقوم بتصوير المخطط مع تطبيق تنسيقه.
هل يمكنني حساب الإحداثيات الفعلية لتسمية/عنصر لوضع تغطية مخصصة فوق المخطط؟
نعم. بعد التحقق من تخطيط المخطط، تتوفر قيم x وy الفعلية للعناصر (على سبيل المثال، DataLabel)، مما يساعد على تحديد المواقع بدقة للتغطيات.