تخصيص نقاط البيانات في مخططات Treemap و Sunburst باستخدام JavaScript
إلى جانب أنواع أخرى من مخططات PowerPoint ، هناك نوعان “هرميان” - مخطط Treemap ومخطط Sunburst (المعروف أيضًا باسم Sunburst Graph أو Sunburst Diagram أو Radial Chart أو Radial Graph أو Multi Level Pie Chart). تعرض هذه المخططات بيانات هرمية منظمة كشجرة - من الأوراق إلى أعلى الفرع. تُعرّف الأوراق بنقاط بيانات السلسلة ، ويُحدَّد كل مستوى تجميع متداخل لاحق بالفئة المقابلة. يتيح Aspose.Slides لـ Node.js عبر Java تنسيق نقاط بيانات مخطط Sunburst و Treemap في JavaScript.
هنا مخطط Sunburst ، حيث تحدد البيانات في عمود Series1 عقد الأوراق ، بينما تحدد الأعمدة الأخرى نقاط البيانات الهرمية:
لنبدأ بإضافة مخطط Sunburst جديد إلى العرض التقديمي:
var pres = new aspose.slides.Presentation();
try {
var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Sunburst, 100, 100, 450, 400);
// ...
} finally {
if (pres != null) {
pres.dispose();
}
}
إذا كان هناك حاجة لتنسيق نقاط بيانات المخطط ، يجب استخدام ما يلي:
ChartDataPointLevelsManager، ChartDataPointLevel الفئات وChartDataPoint.getDataPointLevels الطريقة توفر إمكانية الوصول إلى تنسيق نقاط بيانات مخططات Treemap و Sunburst. يستخدم ChartDataPointLevelsManager للوصول إلى الفئات متعددة المستويات - فهو يمثل الحاوية لـ ChartDataPointLevel الكائنات. أساساً هو غلاف لـ ChartCategoryLevelsManager مع الخصائص المضافة المحددة لنقاط البيانات. تحتوي فئة ChartDataPointLevel على طريقتين: getFormat وgetDataLabel اللتين توفران إمكانية الوصول إلى الإعدادات المقابلة.
عرض قيمة نقطة البيانات
عرض قيمة نقطة البيانات “Leaf 4”:
var dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
dataPoints.get_Item(3).getDataPointLevels().get_Item(0).getLabel().getDataLabelFormat().setShowValue(true);
تعيين تسمية ولون نقطة البيانات
عيّن تسمية بيانات “Branch 1” لإظهار اسم السلسلة (“Series1”) بدلاً من اسم الفئة. ثم عيّن لون النص إلى الأصفر:
var branch1Label = dataPoints.get_Item(0).getDataPointLevels().get_Item(0).getLabel();
branch1Label.getDataLabelFormat().setShowCategoryName(false);
branch1Label.getDataLabelFormat().setShowSeriesName(true);
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
branch1Label.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW"));
تعيين لون فرع نقطة البيانات
غيّر لون الفرع “Steam 4”:
var pres = new aspose.slides.Presentation();
try {
var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Sunburst, 100, 100, 450, 400);
var dataPoints = chart.getChartData().getSeries().get_Item(0).getDataPoints();
var stem4branch = dataPoints.get_Item(9).getDataPointLevels().get_Item(1);
stem4branch.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
stem4branch.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
الأسئلة الشائعة
هل يمكنني تغيير ترتيب (فرز) القطاعات في مخطط Sunburst/Treemap؟ لا. يقوم PowerPoint بفرز القطاعات تلقائيًا (عادةً حسب القيم تنازليًا، باتجاه عقارب الساعة). يطابق Aspose.Slides هذا السلوك: لا يمكنك تغيير الترتيب مباشرة؛ بل يتم ذلك عبر التحضير المسبق للبيانات.
كيف يؤثر سمة العرض التقديمي على ألوان القطاعات والتسميات؟ وراثة ألوان المخطط لسمة العرض التقديمي theme/palette ما لم تقم بتعيين التعبئة أو الخطوط صراحةً. للحصول على نتائج متسقة، قم بتثبيت التعبئات الصلبة وتنسيق النص في المستويات المطلوبة.
هل سيحافظ التصدير إلى PDF/PNG على ألوان الفروع المخصصة وإعدادات التسميات؟ نعم. عند تصدير العرض التقديمي، تُحافظ إعدادات المخطط (التعبئات، التسميات) في صيغ الإخراج لأن Aspose.Slides يُظهر المخطط بتطبيق التنسيق.
هل يمكنني حساب الإحداثيات الفعلية لتسمية/عنصر لتحديد موضع تغطية مخصصة فوق المخطط؟ نعم. بعد التحقق من تخطيط المخطط، تتوفر قيم X وY الفعلية للعناصر (على سبيل المثال، DataLabel)، مما يساعد على تحديد موضع الدُسُور بدقة.