تخصيص نقاط البيانات في مخططات Treemap و Sunburst باستخدام С++
من بين الأنواع الأخرى لمخططات PowerPoint، هناك نوعان “هرميان” - Treemap و Sunburst (المعروفة أيضًا باسم Sunburst Graph أو Sunburst Diagram أو Radial Chart أو Radial Graph أو Multi Level Pie Chart). تعرض هذه المخططات بيانات هرمية منظمة كشجرة - من الأوراق إلى قمة الفرع. تُعرّف الأوراق بنقاط بيانات السلسلة، وكل مستوى تجميع متداخل لاحق يُحدد بالفئة المقابلة. يتيح Aspose.Slides for C++ تنسيق نقاط بيانات مخطط Sunburst و Treemap في C++.
فيما يلي مخطط Sunburst، حيث تُعرّف البيانات في عمود Series1 عقد الأوراق، بينما تُعرّف الأعمدة الأخرى نقاط البيانات الهرمية:
لنبدأ بإضافة مخطط Sunburst جديد إلى العرض التقديمي:
auto pres = System::MakeObject<Presentation>();
auto chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::Sunburst, 100.0f, 100.0f, 450.0f, 400.0f);
// ...
انظر أيضًا
إذا كان هناك حاجة لتنسيق نقاط بيانات المخطط، يجب استخدام ما يلي:
IChartDataPointLevelsManager، IChartDataPointLevel الفئات وIChartDataPoint::get_DataPointLevels() الطريقة توفر الوصول لتنسيق نقاط بيانات مخطط Treemap و Sunburst. IChartDataPointLevelsManager يُستخدم للوصول إلى الفئات متعددة المستويات - وهو يمثل الحاوية لـ IChartDataPointLevel الكائنات. أساسًا هو غلاف لـ IChartCategoryLevelsManager مع الخصائص المضافة الخاصة بنقاط البيانات. فئة IChartDataPointLevel تحتوي على طريقتين: get_Format() وget_Label() التي توفر الوصول إلى الإعدادات المقابلة.
عرض قيمة نقطة البيانات
عرض قيمة نقطة البيانات “Leaf 4”:
auto dataPoints = chart->get_ChartData()->get_Series()->idx_get(0)->get_DataPoints();
dataPoints->idx_get(3)->get_DataPointLevels()->idx_get(0)->get_Label()->get_DataLabelFormat()->set_ShowValue(true);
تحديد تسمية ولون نقطة البيانات
اضبط تسمية البيانات لـ “Branch 1” لتظهر اسم السلسلة (“Series1”) بدلًا من اسم الفئة. ثم اضبط لون النص إلى الأصفر:
auto branch1Label = dataPoints->idx_get(0)->get_DataPointLevels()->idx_get(2)->get_Label();
branch1Label->get_DataLabelFormat()->set_ShowCategoryName(false);
branch1Label->get_DataLabelFormat()->set_ShowSeriesName(true);
branch1Label->get_DataLabelFormat()->get_TextFormat()->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid);
branch1Label->get_DataLabelFormat()->get_TextFormat()->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Yellow());
تحديد لون فرع نقطة البيانات
غيّر لون فرع “Stem 4”:
auto pres = System::MakeObject<Presentation>();
auto chart = pres->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::Sunburst, 100.0f, 100.0f, 450.0f, 400.0f);
auto dataPoints = chart->get_ChartData()->get_Series()->idx_get(0)->get_DataPoints();
auto stem4branch = dataPoints->idx_get(9)->get_DataPointLevels()->idx_get(1);
stem4branch->get_Format()->get_Fill()->set_FillType(FillType::Solid);
stem4branch->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(Color::get_Red());
pres->Save(u"pres.pptx", SaveFormat::Pptx);
الأسئلة المتكررة
هل يمكنني تغيير ترتيب (الفرز) القطاعات في مخطط Sunburst/Treemap؟
لا. يقوم PowerPoint بفرز القطاعات تلقائيًا (عادةً حسب القيم المتناقصة، باتجاه عقارب الساعة). ينسخ Aspose.Slides هذا السلوك: لا يمكنك تغيير الترتيب مباشرة؛ بل تقوم بذلك عبر معالجة البيانات مسبقًا.
كيف يؤثر موضوع العرض التقديمي على ألوان القطاعات والتسميات؟
تورث ألوان المخطط الموضوع/لوحة الألوان من العرض التقديمي ما لم تقم بضبط التعبئات/الخطوط صراحة. للحصول على نتائج متسقة، احصر التعبئات الصلبة وتنسيق النص في المستويات المطلوبة.
هل سيحافظ التصدير إلى PDF/PNG على ألوان الفروع المخصصة وإعدادات التسميات؟
نعم. عند تصدير العرض التقديمي، يتم الحفاظ على إعدادات المخطط (التعبئات، التسميات) في صيغ الإخراج لأن Aspose.Slides يقوم بالتصيير مع تطبيق تنسيق المخطط.
هل يمكنني حساب الإحداثيات الفعلية لتسمية/عنصر من أجل وضع طبقة مخصصة فوق المخطط؟
نعم. بعد التحقق من صحة تخطيط المخطط، تكون قيم X و Y الفعلية متاحة للعناصر (على سبيل المثال، DataLabel)، مما يساعد في تحديد موضع الطبقات بدقة.