تخصيص نقاط البيانات في مخططات شجرة الخرائط ومخططات شمسية في .NET

بالإضافة إلى أنواع أخرى من مخططات PowerPoint، هناك نوعان “هرميان” - Treemap و Sunburst (المعروف أيضًا باسم مخطط Sunburst أو رسم تخطيطي Sunburst، مخطط قطري، رسم قطري أو مخطط فطيرة متعدد المستويات). هذه المخططات تعرض بيانات هرمية منظمة كشجرة - من الأوراق إلى قمة الفرع. يتم تعريف الأوراق بنقاط بيانات السلسلة، وكل مستوى تجميع متداخل لاحق يُحدد بواسطة الفئة المقابلة. يتيح Aspose.Slides for .NET تنسيق نقاط بيانات مخطط Sunburst و Treemap في C#.

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

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

using (Presentation pres = new Presentation())
{
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Sunburst, 100, 100, 450, 400);
    // ...
}

إذا كان هناك حاجة لتنسيق نقاط البيانات في المخطط، يجب علينا استخدام ما يلي: IChartDataPointLevelsManager، IChartDataPointLevel الفئات وIChartDataPoint.DataPointLevels الخاصية توفر إمكانية الوصول لتنسيق نقاط البيانات في مخططات Treemap و Sunburst.

IChartDataPointLevelsManager يُستخدم للوصول إلى الفئات متعددة المستويات - وهو يمثل حاوية كائنات IChartDataPointLevel. أساسًا هو غلاف لـ IChartCategoryLevelsManager مع الخصائص المضافة الخاصة بنقاط البيانات.

فئة IChartDataPointLevel لديها خاصيتان: Format وDataLabel التي توفر الوصول إلى الإعدادات المقابلة.

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

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

IChartDataPointCollection dataPoints = chart.ChartData.Series[0].DataPoints;
dataPoints[3].DataPointLevels[0].Label.DataLabelFormat.ShowValue = true;

todo:image_alt_text

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

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

IDataLabel branch1Label = dataPoints[0].DataPointLevels[2].Label;
branch1Label.DataLabelFormat.ShowCategoryName = false;
branch1Label.DataLabelFormat.ShowSeriesName = true;

branch1Label.DataLabelFormat.TextFormat.PortionFormat.FillFormat.FillType = FillType.Solid;
branch1Label.DataLabelFormat.TextFormat.PortionFormat.FillFormat.SolidFillColor.Color = Color.Yellow;

todo:image_alt_text

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

تغيير لون فرع “Stem 4”:

using (Presentation pres = new Presentation())
{
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Sunburst, 100, 100, 450, 400);
    
    IChartDataPointCollection dataPoints = chart.ChartData.Series[0].DataPoints;

    IChartDataPointLevel stem4branch = dataPoints[9].DataPointLevels[1];
    
    stem4branch.Format.Fill.FillType = FillType.Solid;
    stem4branch.Format.Fill.SolidFillColor.Color = Color.Red;
      
    pres.Save("pres.pptx", SaveFormat.Pptx);
}

todo:image_alt_text

الأسئلة المتداولة

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

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

هل سيحافظ التصدير إلى PDF/PNG على ألوان الفروع المخصصة وإعدادات التسميات؟
نعم. عند تصدير العرض التقديمي، يتم الاحتفاظ بإعدادات المخطط (التعبئات، التسميات) في صيغ الإخراج لأن Aspose.Slides يقوم بتصوير المخطط باستخدام التنسيق المطبق.

هل يمكنني حساب الإحداثيات الفعلية لتسمية/عنصر لوضع تغطية مخصصة أعلى المخطط؟
نعم. بعد التحقق من تخطيط المخطط، تكون الخاصيتان ActualX/ActualY متاحتين للعناصر (على سبيل المثال، DataLabel)، مما يساعد في تحديد المواقع بدقة للتغطيّات.