تخصيص نقاط البيانات في مخططات Treemap و Sunburst باستخدام PHP

من بين الأنواع الأخرى لمخططات PowerPoint، هناك نوعان «هرميان» – Treemap و Sunburst (المعروفة أيضًا باسم Sunburst Graph أو Sunburst Diagram أو Radial Chart أو Radial Graph أو Multi Level Pie Chart). تُظهر هذه المخططات بيانات هرمية منظمة كشجرة – من الأوراق إلى أعلى الفرع. تُعرّف الأوراق بنقاط بيانات السلسلة، وكل مستوى تجميع متداخل لاحق يُعرّف بالفئة المقابلة. يتيح Aspose.Slides for PHP عبر Java تنسيق نقاط البيانات لمخطط Sunburst وTreemap.

إليك مخطط Sunburst، حيث تُعرّف البيانات في عمود Series1 عقد الأوراق، بينما تُعرّف الأعمدة الأخرى نقاط البيانات الهرمية:

todo:image_alt_text

لنبدأ بإضافة مخطط Sunburst جديد إلى العرض التقديمي:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 100, 100, 450, 400);
    # ...
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

إذا كان هناك حاجة لتنسيق نقاط بيانات المخطط، يجب استخدام ما يلي:

ChartDataPointLevelsManager، ChartDataPointLevel classes and ChartDataPoint::getDataPointLevels method provide access to format data points of Treemap and Sunburst charts. ChartDataPointLevelsManager is used for accessing multi-level categories - it represents the container of ChartDataPointLevel objects. Basically it is a wrapper for ChartCategoryLevelsManager with the properties added specific for data points. ChartDataPointLevel class has two methods: getFormat and getDataLabel which provide access to corresponding settings.

إظهار قيمة نقطة البيانات

إظهار قيمة نقطة البيانات “Leaf 4”:

  $dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
  $dataPoints->get_Item(3)->getDataPointLevels()->get_Item(0)->getLabel()->getDataLabelFormat()->setShowValue(true);

todo:image_alt_text

تعيين تسمية ولون نقطة البيانات

عيّن تسمية البيانات “Branch 1” لعرض اسم السلسلة (“Series1”) بدلاً من اسم الفئة. ثم عيّن لون النص إلى الأصفر:

  $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(java("java.awt.Color")->YELLOW);

todo:image_alt_text

تعيين لون فرع نقطة البيانات

غيّر لون الفرع “Steam 4”:

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 100, 100, 450, 400);
    $dataPoints = $chart->getChartData()->getSeries()->get_Item(0)->getDataPoints();
    $stem4branch = $dataPoints->get_Item(9)->getDataPointLevels()->get_Item(1);
    $stem4branch->getFormat()->getFill()->setFillType(FillType::Solid);
    $stem4branch->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
    $pres->save("pres.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

todo:image_alt_text

الأسئلة المتكررة

هل يمكنني تغيير ترتيب (الفرز) القطاعات في Sunburst/Treemap؟

لا. يقوم PowerPoint بفرز القطاعات تلقائيًا (عادةً حسب القيم المتناقصة باتجاه عقارب الساعة). يعكس Aspose.Slides هذا السلوك: لا يمكنك تغيير الترتيب مباشرةً؛ يمكنك تحقيق ذلك عبر معالجة البيانات مسبقًا.

كيف يؤثر سمة/لوحة ألوان العرض التقديمي على ألوان القطاعات والتسميات؟

تورث ألوان المخطط سمة العرض التقديمي theme/palette ما لم تقم بتعيين تعبئات/خطوط صراحةً. للحصول على نتائج متسقة، قم بتثبيت تعبئات صلبة وتنسيق النص في المستويات المطلوبة.

هل سيحتفظ التصدير إلى PDF/PNG بألوان الفروع المخصصة وإعدادات التسميات؟

نعم. عند تصدير العرض التقديمي، تُحافظ إعدادات المخطط (التعبئات، التسميات) في صيغ الإخراج لأن Aspose.Slides يقوم بالعرض مع تطبيق تنسيق المخطط.

هل يمكنني حساب الإحداثيات الفعلية لتسمية/عنصر لتحديد موضع تراكب مخصص فوق المخطط؟

نعم. بعد التحقق من تخطيط المخطط، تكون قيم x الفعلية وy الفعلية متاحة للعناصر (على سبيل المثال، DataLabel)، مما يساعد في تحديد موضع التراكبات بدقة.