تخصيص نقاط البيانات في مخططات 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();
}
إذا كان هناك حاجة لتنسيق نقاط البيانات في المخطط، يجب استخدام ما يلي:
توفر الفئات والطريقة التالية إمكانية الوصول إلى تنسيق نقاط البيانات لمخططي Treemap وSunburst.
IChartDataPointLevelsManager, IChartDataPointLevel classes and IChartDataPoint.getDataPointLevels method provide access to format data points of Treemap and Sunburst charts. IChartDataPointLevelsManager is used for accessing multi-level categories - it represents the container of IChartDataPointLevel objects. Basically it is a wrapper for IChartCategoryLevelsManager with the properties added specific for data points. IChartDataPointLevel class has two methods: getFormat and getDataLabel which provide access to corresponding settings.
إظهار قيمة نقطة البيانات
عرض قيمة نقطة البيانات “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 هذا السلوك: لا يمكنك تغيير الترتيب مباشرةً؛ يمكنك تحقيق ذلك عن طريق معالجة البيانات مسبقًا.
كيف يؤثر سمة العرض التقديمي على ألوان الأقسام والتسميات؟
تورث ألوان المخطط سمة/لوحة ألوان العرض التقديمي [/slides/androidjava/presentation-theme/] ما لم تقم بتعيين التعبئة/الخطوط صراحةً. للحصول على نتائج متسقة، احرص على تثبيت التعبئة الصلبة وتنسيق النص في المستويات المطلوبة.
هل سيحافظ التصدير إلى PDF/PNG على ألوان الفروع المخصصة وإعدادات التسميات؟
نعم. عند تصدير العرض التقديمي، تُحافظ إعدادات المخطط (التعبئة، التسميات) في صيغ الإخراج لأن Aspose.Slides يقوم بالرندر باستخدام تنسيق المخطط المطبق.
هل يمكنني حساب الإحداثيات الفعلية لتسمية/عنصر لوضع تراكب مخصص فوق المخطط؟
نعم. بعد التحقق من تخطيط المخطط، يتوفر x الفعلي وy الفعلي للعناصر (مثلاً، DataLabel)، مما يساعد في تحديد المواقع بدقة للتراكبات.