在 .NET 中於簡報管理圖表資料系列
概述
本文說明了 ChartSeries 在 Aspose.Slides for .NET 中的角色,重點在於資料在簡報中的結構與視覺化方式。這些物件提供了定義圖表中單一資料點集合、類別和外觀參數的基礎元素。透過使用 ChartSeries,開發人員可以無縫整合底層資料來源,並完全掌控資訊的顯示方式,從而產生動態、資料驅動的簡報,清晰傳達洞見與分析。
系列是一列或一欄在圖表中繪製的數字。

設定圖表系列重疊
IChartSeriesOverlap 屬性透過指定 -100 到 100 的範圍,控制 2D 圖表中棒狀圖和柱狀圖的重疊方式。由於此屬性與系列群組相關,而非單一圖表系列,因此在系列層級上為唯讀。若要設定重疊值,請使用 ParentSeriesGroup.Overlap 可讀寫屬性,該屬性會將指定的重疊套用至該群組中的所有系列。
以下是一個 C# 範例,示範如何建立簡報、加入叢集柱狀圖、存取第一個圖表系列、設定重疊屬性,然後將結果儲存為 PPTX 檔案:
sbyte overlap = 30;
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// 新增預設資料的叢集柱狀圖。
IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartSeries series = chart.ChartData.Series[0];
if (series.Overlap == 0)
{
// 設定系列重疊。
series.ParentSeriesGroup.Overlap = overlap;
}
// 將簡報檔案儲存至磁碟。
presentation.Save("series_overlap.pptx", SaveFormat.Pptx);
}
結果:

變更系列填滿顏色
Aspose.Slides 讓自訂圖表系列的填滿顏色變得簡單,您可以突出特定資料點,並建立視覺上吸引人的圖表。這透過 IFormat 物件實現,該物件支援各種填充類型、顏色設定以及其他進階樣式選項。將圖表加入投影片並存取目標系列後,只需取得該系列並套用適當的填滿顏色。除了純色填滿,您還可以使用漸層或圖案填滿以提升設計彈性。設定完所需的顏色後,將簡報儲存即可完成更新的外觀。
以下 C# 程式碼範例示範如何變更第一個系列的顏色:
Color seriesColor = Color.Blue;
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// 新增預設資料的叢集柱狀圖。
IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
// 設定第一個系列的顏色。
IChartSeries series = chart.ChartData.Series[0];
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = seriesColor;
// 將簡報檔案儲存至磁碟。
presentation.Save("series_color.pptx", SaveFormat.Pptx);
}
結果:

變更系列名稱
Aspose.Slides 提供簡易的方式來修改圖表系列的名稱,使資料標籤更清晰且具意義。透過存取圖表資料中的相關工作表儲存格,開發人員可以自訂資料的呈現方式。當系列名稱需要根據資料情境進行更新或說明時,此修改特別有用。重新命名系列後,可儲存簡報以保留變更。
以下是展示此過程的 C# 程式碼片段。
string seriesName = "New name";
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// 新增預設資料的叢集柱狀圖。
IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
// 設定第一個系列的名稱。
IChartDataCell seriesCell = chart.ChartData.ChartDataWorkbook.GetCell(0, 0, 1);
seriesCell.Value = seriesName;
// 將簡報檔案儲存至磁碟。
presentation.Save("series_name.pptx", SaveFormat.Pptx);
}
以下 C# 程式碼示範另一種變更系列名稱的方法:
string seriesName = "New name";
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// 新增預設資料的叢集柱狀圖。
IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
// 設定第一個系列的名稱。
IChartSeries series = chart.ChartData.Series[0];
series.Name.AsCells[0].Value = seriesName;
// 將簡報檔案儲存至磁碟。
presentation.Save("series_name.pptx", SaveFormat.Pptx);
}
結果:

取得自動系列填滿顏色
Aspose.Slides for .NET 允許您取得圖表區域內系列的自動填滿顏色。建立 Presentation 類別的實例後,您可以透過索引取得目標投影片的參考,然後使用您偏好的類型(例如 ChartType.ClusteredColumn)新增圖表。存取圖表中的系列後,即可取得自動填滿顏色。
以下 C# 程式碼詳細示範此流程。
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// 新增預設資料的叢集柱狀圖。
IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
for (int i = 0; i < chart.ChartData.Series.Count; i++)
{
// 取得系列的填滿顏色。
Color color = chart.ChartData.Series[i].GetAutomaticSeriesColor();
Console.WriteLine($"Series {i} color: {color.Name}");
}
}
輸出:
Series 0 color: ff4f81bd
Series 1 color: ffc0504d
Series 2 color: ff9bbb59
設定圖表系列的反轉填滿顏色
當資料系列同時包含正值與負值時,若所有柱形或棒狀圖使用相同顏色,圖表將難以閱讀。Aspose.Slides for .NET 允許您指定反轉填滿顏色——這是一種會自動套用於低於零的資料點的獨立填充,使負值一目了然。在本節中,您將學習如何啟用此選項、選擇合適的顏色,並儲存更新後的簡報。
以下程式碼範例示範此操作:
Color inverColor = Color.Red;
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200);
IChartDataWorkbook workBook = chart.ChartData.ChartDataWorkbook;
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
// 新增類別。
chart.ChartData.Categories.Add(workBook.GetCell(0, 1, 0, "Category 1"));
chart.ChartData.Categories.Add(workBook.GetCell(0, 2, 0, "Category 2"));
chart.ChartData.Categories.Add(workBook.GetCell(0, 3, 0, "Category 3"));
// 新增系列。
IChartSeries series = chart.ChartData.Series.Add(workBook.GetCell(0, 0, 1, "Series 1"), chart.Type);
// 填入系列資料。
series.DataPoints.AddDataPointForBarSeries(workBook.GetCell(0, 1, 1, -20));
series.DataPoints.AddDataPointForBarSeries(workBook.GetCell(0, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(workBook.GetCell(0, 3, 1, -30));
// 設定系列的顏色設定。
var seriesColor = series.GetAutomaticSeriesColor();
series.InvertIfNegative = true;
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = seriesColor;
series.InvertedSolidFillColor.Color = inverColor;
presentation.Save("inverted_solid_fill_color.pptx", SaveFormat.Pptx);
}
結果:

您可以對單一資料點而非整個系列套用反轉填充顏色。只需存取目標 IChartDataPoint,並將其 InvertIfNegative 屬性設為 true。
以下程式碼範例示範如何執行此操作:
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 200, true);
chart.ChartData.Series.Clear();
IChartSeries series = chart.ChartData.Series.Add(chart.ChartData.ChartDataWorkbook.GetCell(0, "B1"), chart.Type);
series.DataPoints.AddDataPointForBarSeries(chart.ChartData.ChartDataWorkbook.GetCell(0, "B2", -5));
series.DataPoints.AddDataPointForBarSeries(chart.ChartData.ChartDataWorkbook.GetCell(0, "B3", 3));
series.DataPoints.AddDataPointForBarSeries(chart.ChartData.ChartDataWorkbook.GetCell(0, "B4", -3));
series.DataPoints.AddDataPointForBarSeries(chart.ChartData.ChartDataWorkbook.GetCell(0, "B5", 1));
// 若索引 2 的資料點為負值,則反轉顏色。
series.InvertIfNegative = false;
series.DataPoints[2].InvertIfNegative = true;
presentation.Save("data_point_invert_color_if_negative.pptx", SaveFormat.Pptx);
}
清除特定資料點值
有時圖表中會包含測試值、異常值或過時的條目,您需要在不重建整個系列的情況下將其移除。Aspose.Slides for .NET 允許您透過索引定位任意資料點,清除其內容,並即時重新整理圖表,使剩餘的資料點移位,座標軸自動重新調整比例。
以下程式碼範例示範此操作:
using (Presentation presentation = new Presentation("test_chart.pptx"))
{
ISlide slide = presentation.Slides[0];
IChart chart = (IChart)slide.Shapes[0];
IChartSeries series = chart.ChartData.Series[0];
foreach (IChartDataPoint dataPoint in series.DataPoints)
{
dataPoint.XValue.AsCell.Value = null;
dataPoint.YValue.AsCell.Value = null;
}
series.DataPoints.Clear();
presentation.Save("clear_data_points.pptx", SaveFormat.Pptx);
}
設定系列間隙寬度
間隙寬度控制相鄰柱形或棒狀圖之間的空白量——較寬的間隙凸顯個別類別,而較窄的間隙則產生更緊密、緊湊的外觀。透過 Aspose.Slides for .NET,您可以對整個系列微調此參數,以達到簡報所需的視覺平衡,而無需更改底層資料。
以下程式碼範例示範如何為系列設定間隙寬度:
ushort gapWidth = 30;
// 建立空白簡報。
using (Presentation presentation = new Presentation())
{
// 存取第一張投影片。
ISlide slide = presentation.Slides[0];
// 新增預設資料的圖表。
IChart chart = slide.Shapes.AddChart(ChartType.StackedColumn, 20, 20, 500, 200);
// 將簡報儲存至磁碟。
presentation.Save("default_gap_width.pptx", SaveFormat.Pptx);
// 設定 GapWidth 值。
IChartSeries series = chart.ChartData.Series[0];
series.ParentSeriesGroup.GapWidth = gapWidth;
// 將簡報儲存至磁碟。
presentation.Save("gap_width_30.pptx", SaveFormat.Pptx);
}
結果:

常見問題
單一圖表能包含的系列數量是否有限制?
Aspose.Slides 並未對您可加入的系列數量設定固定上限。實際限制取決於圖表的可讀性以及您的應用程式可用的記憶體。
如果叢集內的柱形過於接近或相隔過遠,該怎麼辦?
調整該系列(或其父系列群組)的 GapWidth 設定。增大數值會擴大柱形之間的間距,減小數值則會使它們更靠近。