إدارة سلاسل بيانات المخطط في العروض التقديمية في .NET
نظرة عامة
تخزن المخطط بياناته المرسومة في دفتر بيانات المخطط. يمثل IChartSeries مجموعة واحدة من القيم المرتبطة، وكل IChartDataPoint في السلسلة يشير إلى خلية أو أكثر في دفتر العمل. توفر كائنات IChartCategory التسميات أو قيم التجميع المشتركة بين السلاسل. لذلك يتم ربط اسم السلسلة والفئات وقيم النقاط بكائنات IChartDataCell بدلاً من تخزينها كنص عرض فقط.
في مخطط الفئات النموذجي، يستخدم دفتر العمل الافتراضي الصف 0 لأسماء السلاسل، والعمود 0 لأسماء الفئات، وتُستخدم الخلايا المتبقية لقيم السلسلة. يتم تمرير مؤشرات ورقة العمل والصف والعمود إلى IChartDataWorkbook.GetCell بصفر كأساس. هذا التخطيط مفيد عندما تنشئ مخططًا ببيانات افتراضية، لكن لا تفترض أن كل مخطط موجود يستخدمه. في عرض تقديمي محمَّل، قم بتفتيش الخلايا التي تشير إليها السلاسل والفئات ونقاط البيانات قبل تعديل قيم دفتر العمل.
إعدادات المخطط لها ثلاث نطاقات مختلفة:
- إعدادات مستوى السلسلة، مثل IChartSeries.Format، توفر المظهر الافتراضي لجميع النقاط في سلسلة واحدة.
- إعدادات نقطة البيانات، مثل IChartDataPoint.Format، تتجاوز مظهر السلسلة لنقطة واحدة.
- تنطبق إعدادات المجموعة على السلاسل المتوافقة التي تنتمي إلى نفس IChartSeriesGroup. يمكنك الوصول إلى المجموعة عبر IChartSeries.ParentSeriesGroup عندما تحتاج إلى تعيين خيارات مثل التداخل أو عرض الفجوة.
عندما لا يتم تعيين تعبئة صريحة للنقطة أو السلسلة، يحدد نمط المخطط والموضوع المظهر التلقائي. عندما يكون كل من تنسيق السلسلة وتنسيق النقطة موجودين، يتفوق تنسيق النقطة لتلك النقطة.

تعيين تداخل سلسلة المخطط
IChartSeries.Overlap يُبلغ عن مدى تداخل الأشرطة أو الأعمدة في مخطط ثنائي الأبعاد، من -100 إلى 100 بالمائة. إنه إظهار للقراءة فقط للإعداد على مجموعة السلسلة الأصل. قم بتعيين IChartSeriesGroup.Overlap لتحديث كل السلاسل المتوافقة في تلك المجموعة. ينطبق هذا الخيار على أنواع المخططات التي تعرض أشرطة أو أعمدة مجمعة؛ ولا يؤثر على مجموعات السلاسل غير ذات الصلة في مخطط مركب.
المثال التالي يضبط التداخل للمجموعة التي تحتوي على السلسلة الأولى:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const sbyte overlapPercent = 30;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
// المخطط الجديد يحتوي على سلاسل وعناصر فئة وقيم تجريبية.
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
series.ParentSeriesGroup.Overlap = overlapPercent;
presentation.Save("series_overlap.pptx", SaveFormat.Pptx);
النتيجة:

تغيير لون تعبئة السلسلة
استخدم IChartSeries.Format لتعيين التعبئة الافتراضية لسلسلة كاملة. إذا كانت النقطة لديها تعبئة صريحة بالفعل، فإن إعداد IChartDataPoint.Format يتجاوز تعبئة السلسلة لتلك النقطة.
المثال التالي يطبق تعبئة صلبة باللون الأزرق على السلسلة الأولى:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Blue;
presentation.Save("series_color.pptx", SaveFormat.Pptx);
النتيجة:

تغيير اسم السلسلة
يُخزن اسم السلسلة في دفتر بيانات المخطط وعادةً ما يُعرض في المفتاح. في دفتر العمل الافتراضي الذي يُنشأ لمخطط أعمدة مجمّعة، تكون الخلية B1 في الصف 0 والعمود 1 وتحتوي على اسم السلسلة الأولى. الثوابت المسماة في المثال التالي تجعل هذا الهيكل واضحًا:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int worksheetIndex = 0;
const int seriesNameRowIndex = 0;
const int firstSeriesColumnIndex = 1;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var workbook = chart.ChartData.ChartDataWorkbook;
var seriesNameCell = workbook.GetCell(worksheetIndex, seriesNameRowIndex, firstSeriesColumnIndex);
seriesNameCell.Value = "Revenue";
presentation.Save("series_name.pptx", SaveFormat.Pptx);
يمكنك أيضًا تحديث الخلية التي يُشير إليها بالفعل IChartSeries.Name. ي避免 هذا النهج الافتراض بوجود صف وعمود معينين في مخطط موجود:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const int firstNameCellIndex = 0;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
var seriesNameCell = series.Name.AsCells[firstNameCellIndex];
seriesNameCell.Value = "Revenue";
presentation.Save("series_name.pptx", SaveFormat.Pptx);
النتيجة:

إنشاء سلسلة باسم من عدة خلايا
يكون اسم السلسلة المركب مفيدًا عندما يتم تخزين اسم المنتج وفترة التقرير في خلايا دفتر عمل منفصلة. على سبيل المثال، يمكنك دمج Product A في B1 و2026 في C1 في اسم سلسلة واحد مع الحفاظ على ارتباط الجزأين بخلايا المصدر.
استخدم IChartDataWorkbook.GetCellCollection لاسترجاع نطاق الاسم، ثم مرّر تلك المجموعة إلى IChartSeriesCollection.Add. يتحكم معامل skipHiddenCells فيما إذا كانت الخلايا المخفية مُضمنة: true يستثنيها، بينما false يضمنها. يستخدم هذا المثال false لتضمين كل الخلايا في نطاق الاسم.
المثال التالي ينشئ عرض تقديمي بسلسلة واحدة ونقطتي بيانات. الخلايا B1:C1 تزود فقط باسم السلسلة؛ A2:A3 تزود تسميات الفئات، وB2:B3 تزود القيم الرقمية.
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 50, 50, 620, 180);
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
chart.HasLegend = true;
var workbook = chart.ChartData.ChartDataWorkbook;
workbook.Clear(0);
// هاتان الخليتان توفران اسم السلسلة.
workbook.GetCell(0, 0, 1, "Product A");
workbook.GetCell(0, 0, 2, "2026");
var nameCells = workbook.GetCellCollection("Sheet1!$B$1:$C$1", skipHiddenCells: false);
var series = chart.ChartData.Series.Add(nameCells, ChartType.ClusteredColumn);
// خلايا منفصلة توفر الفئات ونقاط البيانات الرقمية.
var northCategory = workbook.GetCell(0, 1, 0, "North");
var southCategory = workbook.GetCell(0, 2, 0, "South");
chart.ChartData.Categories.Add(northCategory);
chart.ChartData.Categories.Add(southCategory);
var northValue = workbook.GetCell(0, 1, 1, 120);
var southValue = workbook.GetCell(0, 2, 1, 150);
series.DataPoints.AddDataPointForBarSeries(northValue);
series.DataPoints.AddDataPointForBarSeries(southValue);
presentation.Save("composite_series_name.pptx", SaveFormat.Pptx);
اسم السلسلة الناتج هو Product A 2026، مع مسافة بين قيمتي الخليتين. يُظهر المفتاح ذلك كإدخال واحد لكل العمودين. الصورة أدناه تم توليدها من العرض المُحَفَظ:

الحصول على لون تعبئة السلسلة التلقائي
IChartSeries.GetAutomaticSeriesColor يعيد اللون المحسوب من فهرس السلسلة ونمط المخطط. هذا هو اللون المستخدم عندما لا تكون تعبئة السلسلة معرفة صراحة. استدعاء الطريقة يقرأ اللون المحسوب؛ لا يعيّن تعبئة جديدة.
المثال التالي يطبع اللون التلقائي لكل سلسلة افتراضية:
using System;
using Aspose.Slides;
using Aspose.Slides.Charts;
const int firstSlideIndex = 0;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var seriesCount = chart.ChartData.Series.Count;
for (var seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++)
{
var series = chart.ChartData.Series[seriesIndex];
var automaticColor = series.GetAutomaticSeriesColor();
Console.WriteLine($"Series {seriesIndex}: {automaticColor.Name}");
}
مثال على المخرجات لنمط المخطط الافتراضي:
Series 0: ff4f81bd
Series 1: ffc0504d
Series 2: ff9bbb59
الألوان الدقيقة تعتمد على نمط المخطط والموضوع.
تعيين لون تعبئة عكسي لسلسلة المخطط
بالنسبة لسلاسل الأشرطة والأعمدة والفقاعات، يمكن لـIChartSeries.InvertIfNegative عرض القيم السلبية بتعبئة مختلفة. عيّن تعبئة السلسلة العادية إلى صلبة، فعّل العكس، وعيّن لون القيمة السلبية عبر IChartSeries.InvertedSolidFillColor. تبقى الأرقام السلبية دون تغيير في دفتر العمل؛ فقط يتغير لون عرضها.
المثال التالي يستبدل بيانات المخطط الافتراضية بسلسلة واحدة. الصف 0 في ورقة العمل يحتوي على اسم السلسلة، العمود 0 يحتوي على أسماء الفئات، والعمود 1 يحتوي على القيم:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int worksheetIndex = 0;
const int headerRowIndex = 0;
const int categoryColumnIndex = 0;
const int firstSeriesColumnIndex = 1;
const int firstDataRowIndex = 1;
var categoryNames = new[] { "Category 1", "Category 2", "Category 3" };
var seriesValues = new[] { -20, 50, -30 };
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var chartData = chart.ChartData;
var workbook = chartData.ChartDataWorkbook;
chartData.Series.Clear();
chartData.Categories.Clear();
var seriesNameCell = workbook.GetCell(worksheetIndex, headerRowIndex, firstSeriesColumnIndex, "Series 1");
var series = chartData.Series.Add(seriesNameCell, chart.Type);
for (var categoryIndex = 0; categoryIndex < categoryNames.Length; categoryIndex++)
{
var dataRowIndex = firstDataRowIndex + categoryIndex;
var categoryName = categoryNames[categoryIndex];
var seriesValue = seriesValues[categoryIndex];
var categoryCell = workbook.GetCell(worksheetIndex, dataRowIndex, categoryColumnIndex, categoryName);
chartData.Categories.Add(categoryCell);
var valueCell = workbook.GetCell(worksheetIndex, dataRowIndex, firstSeriesColumnIndex, seriesValue);
series.DataPoints.AddDataPointForBarSeries(valueCell);
}
var automaticSeriesColor = series.GetAutomaticSeriesColor();
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = automaticSeriesColor;
series.InvertIfNegative = true;
series.InvertedSolidFillColor.Color = Color.Red;
presentation.Save("inverted_solid_fill_color.pptx", SaveFormat.Pptx);
النتيجة:

يمكنك تمكين العكس لنقطة واحدة عبر IChartDataPoint.InvertIfNegative. في المثال التالي، يتم تعطيل العكس للسلسلة وتمكينه فقط للنقطة المحددة. تُعطى النقطة أيضًا قيمة سلبية لتكون النتيجة مرئية:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const int targetDataPointIndex = 2;
const int negativeValue = -30;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
var automaticSeriesColor = series.GetAutomaticSeriesColor();
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = automaticSeriesColor;
series.InvertedSolidFillColor.Color = Color.Red;
series.InvertIfNegative = false;
var dataPoint = series.DataPoints[targetDataPointIndex];
dataPoint.YValue.AsCell.Value = negativeValue;
dataPoint.InvertIfNegative = true;
presentation.Save("data_point_invert_color_if_negative.pptx", SaveFormat.Pptx);
مسح قيمة نقطة بيانات محددة
لجعل نقطة واحدة فارغة دون حذف باقي النقاط، عيّن خلية دفتر العمل الداعمة لها إلى null. بالنسبة لمخطط الأعمدة، تكون القيمة المرسومة متاحة عبر IChartDataPoint.YValue. تظل نقطة البيانات في نفس موقع الفئة، لكن المخطط يعامل قيمتها كخالية وفقًا لإعدادات قيمة الخلية الفارغة في المخطط.
المثال التالي يمسح فقط النقطة الثانية في السلسلة الأولى:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const int targetDataPointIndex = 1;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
var dataPoint = series.DataPoints[targetDataPointIndex];
dataPoint.YValue.AsCell.Value = null;
presentation.Save("clear_data_point_value.pptx", SaveFormat.Pptx);
تستخدم مخططات التبعثر خلايا X وY منفصلة، وتستخدم مخططات الفقاعات أيضًا خلية حجم. امسح فقط الخلية التي تمثل القيمة التي تريد إزالتها. لا تستدعِ IChartDataPointCollection.Clear عندما تريد الاحتفاظ بالنقاط الأخرى، لأن هذه الطريقة تزيل كل نقطة بيانات من المجموعة.
التحكم في عرض الخلايا الفارغة
الخلايا المخفية التي تحتوي على قيم هي حالة منفصلة عن الخلايا الفارغة. لتضمين أو استبعاد البيانات من الصفوف والأعمدة المخفية في ورقة العمل، راجع تضمين البيانات من الصفوف والأعمدة المخفية.
تمثل خلية دفتر العمل الفارغة بيانات مفقودة؛ خلية تحتوي على 0 تمثل قيمة رقمية معروفة. عيّن IChartDataCell.Value إلى null لجعل الخلية فارغة. الصفر الرقمي يبقى صفرًا بغض النظر عن إعداد الخلية الفارغة.
استخدم IChart.DisplayBlanksAs لتحديد كيفية عرض المخطط للخلايا الفارغة. ينطبق هذا الإعداد على المخطط بأكمله. إنه يغيّر طريقة رسم الفواصل، دون ملء خلية دفتر العمل الفارغة بالصفر أو قيمة متوسطة.
المثال التالي المستقل ينشئ مخطط خط مع سلسلة واحدة، يمسح القيمة لليوم 3، ويحفظ المخطط نفسه بكل وضع. لا يلزم ملف إدخال. يستخدم IChartDataWorkbook ورقة عمل 0، العمود 0 لتسميات الفئات، والعمود 1 للقيم؛ الصف 0 يحمل اسم السلسلة. البيانات النهائية هي 10, 20, empty, 30, 40.
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.LineWithMarkers, 40, 40, 640, 400);
var chartData = chart.ChartData;
var workbook = chartData.ChartDataWorkbook;
chartData.Series.Clear();
chartData.Categories.Clear();
var seriesNameCell = workbook.GetCell(0, 0, 1, "Measurements");
var series = chartData.Series.Add(seriesNameCell, chart.Type);
var values = new[] { 10, 20, 25, 30, 40 };
for (var i = 0; i < values.Length; i++)
{
var categoryCell = workbook.GetCell(0, i + 1, 0, $"Day {i + 1}");
chartData.Categories.Add(categoryCell);
var valueCell = workbook.GetCell(0, i + 1, 1, values[i]);
series.DataPoints.AddDataPointForLineSeries(valueCell);
}
// Leave Day 3 genuinely empty, while retaining its category and data point.
workbook.GetCell(0, 3, 1).Value = null;
var modes = new[] { DisplayBlanksAsType.Gap, DisplayBlanksAsType.Zero, DisplayBlanksAsType.Span };
foreach (var mode in modes)
{
chart.DisplayBlanksAs = mode;
presentation.Save($"empty_cells_{mode}.pptx", SaveFormat.Pptx);
}
كل ملف ناتج يخزّن الوضع المحدد قبل الحفظ: empty_cells_Gap.pptx، empty_cells_Zero.pptx، وempty_cells_Span.pptx. لحفظ نسخة واحدة فقط، عيّن الوضع المطلوب واحفظ العرض مرة واحدة بدلاً من التكرار على الأوضاع.
المقارنة أدناه تُظهر نفس البيانات في جميع الملفات الثلاثة. اليوم 3 فارغ في دفتر العمل في كل حالة:

تأثير العرض يعتمد على نوع المخطط. تجعل مخططات الخط جميع الأوضاع الثلاثة سهلة للمقارنة. لا تمتلك مخططات العمود والأشرطة خطًا لتوصيل الفئات المفقودة، لذا لا يمكن لـSpan إنتاج القطعة المتصلة المعروضة أعلاه؛ وقد تبدو العمود المفقود والعمود صفر الارتفاع متشابهين. بالمثل، مخطط التبعثر مع العلامات فقط لا يحتوي على خط ربط. لا تتوقع ثلاث نتائج مميزة لكل نوع مخطط؛ راجع النتيجة للنوع الذي تستخدمه.
تعيين عرض الفجوة للسلسلة
عرض الفجوة هو المسافة بين مجموعات الأشرطة أو الأعمدة المتجاورة، معبرًا عنها كنسبة مئوية من عرض الشريط أو العمود. مثل التداخل، ينتمي إلى مجموعة السلسلة الأصلية بدلاً من سلسلة واحدة. عيّن IChartSeriesGroup.GapWidth مرة واحدة للمجموعة. القيمة الأكبر تُنشئ مساحة أكبر بين المجموعات؛ القيمة الأصغر تجعلها أكثر كثافة.
المثال التالي يغيّر عرض الفجوة ويحفظ العرض النهائي فقط:
using Aspose.Slides;
using Aspose.Slides.Charts;
using Aspose.Slides.Export;
const int firstSlideIndex = 0;
const int firstSeriesIndex = 0;
const int gapWidthPercent = 30;
using var presentation = new Presentation();
var slide = presentation.Slides[firstSlideIndex];
var chart = slide.Shapes.AddChart(ChartType.StackedColumn, 20, 20, 500, 200);
var series = chart.ChartData.Series[firstSeriesIndex];
series.ParentSeriesGroup.GapWidth = gapWidthPercent;
presentation.Save("gap_width_30.pptx", SaveFormat.Pptx);
النتيجة:

الأسئلة الشائعة
ما نوع المخططات التي تدعم سلاسل البيانات؟
جميع أنواع المخططات الممثلة في تعداد ChartType تستخدم بيانات المخطط، لكن سلاسلها لا تتشارك جميعها في هيكل القيم أو الإعدادات نفسها. على سبيل المثال، تستخدم مخططات الفئات الفئات والقيم، ومخططات التبعثر تستخدم قيم X وY، ومخططات الفقاعات تضيف أحجام الفقاعات. استخدم طريقة إنشاء نقطة البيانات التي تتطابق مع نوع السلسلة. تنطبق خيارات مثل التداخل وعرض الفجوة فقط على مجموعات الأشرطة أو الأعمدة المتوافقة.
ما هي مجموعة سلاسل المخطط؟
تحتوي IChartSeriesGroup على سلاسل متوافقة تشترك في إعدادات الرسم على مستوى المجموعة. يمكن لمخطط مركب أن يحتوي على أكثر من مجموعة، لذا فإن تغيير المجموعة التي يتم الوصول إليها عبر سلسلة معينة لا يعني بالضرورة تغيير كل السلاسل في المخطط.
هل يحتوي المخطط المُنشأ حديثًا على بيانات افتراضية؟
نعم. بشكل افتراضي، يقوم IShapeCollection.AddChart بإنشاء سلاسل، فئات، وقيم تجريبية. يمكنك تعديل تلك الخلايا أو مسح مجموعات السلسلة والفئة قبل إضافة مجموعة بيانات مخصصة بالكامل. يمكن أيضًا استخدام نسخة م overloaded لإنشاء مخطط بدون بيانات افتراضية.
كيف يتم ربط كائنات المخطط بخلايا دفتر العمل؟
أسماء السلاسل، تسميات الفئات، وقيم نقاط البيانات تشير إلى خلايا في IChartDataWorkbook. تغيير خلية مُشار إليها يجدد العنصر المقابل في المخطط. عند بناء بيانات مخصصة، احتفظ بصفوف الفئات وصفوف قيم السلسلة محاذية بحيث يتم رسم كل نقطة تحت الفئة المقصودة.
كيف أقوم بمسح نقطة واحدة بدلاً من السلسلة بأكملها؟
عيّن خلية القيمة ذات الصلة إلى null للاحتفاظ بموقع الفئة للنقطة كنقطة فارغة. استخدم IChartDataPointCollection.Clear فقط عندما تقصد إزالة جميع النقاط من تلك السلسلة. إذا قمت بإزالة الفئات أيضًا، حدّث كل سلسلة بحيث تظل قيمها محاذية مع مجموعة الفئات.
كيف يتم عرض النقاط الفارغة؟
الناتج يعتمد على نوع المخطط وIChart.DisplayBlanksAs. يمكن للمخططات المدعومة عرض الفواصل كفجوات، كقيم صفرية، أو بربط النقاط المجاورة. اختر الإعداد الذي يتطابق مع معنى البيانات المفقودة في عرضك. راجع التحكم في عرض الخلايا الفارغة للحصول على مثال كامل ومقارنة مرئية.
كيف يتم تنسيق القيم السلبية؟
بالنسبة للسلاسل المدعومة من الأشرطة، الأعمدة، والفقاعات، فعّل IChartSeries.InvertIfNegative وعين IChartSeries.InvertedSolidFillColor. يمكنك تجاوز السلوك لنقطة فردية باستخدام IChartDataPoint.InvertIfNegative. تؤثر هذه الخصائص على التنسيق، وليس على القيم الرقمية المخزنة.
أي تنسيق ينتصر عندما يتم تنسيق كل من السلسلة والنقطة؟
يتفوق تنسيق نقطة البيانات الصريحة لتلك النقطة. تواصل النقاط الأخرى استخدام تنسيق السلسلة الصريح أو، إذا لم يُحدد تنسيق السلسلة، نمط المخطط والموضوع التلقائي. تتحكم خصائص المجموعة مثل التداخل وعرض الفجوة في التخطيط وليست تجاوزات لتنسيق على مستوى النقطة.
هل هناك حد لعدد السلاسل التي يمكن أن يحتويها المخطط؟
لا تفرض Aspose.Slides حدًا ثابتًا منفصلًا لعدد السلاسل. في الواقع، تحدد قيود ملف العرض، الذاكرة المتاحة، زمن التخطيط، وقابلية قراءة المخطط حدًا عمليًا.
ماذا يجب تغيير عندما تكون الأعمدة متقاربة جدًا أو متباعدة جدًا؟
عيّن IChartSeriesGroup.GapWidth على مجموعة السلسلة الأصلية المناسبة. زد القيمة لتوسيع المسافة بين المجموعات، أو قللها لجعل المجموعات أقرب إلى بعضها.