共用方式為


群組資料 (Chart 控制項)

群組會使用一個群組資料點取代數列中的資料點序列。每個群組資料點的 X 和 Y 值是使用指定的公式加上所使用之每個資料點的原始值計算而得。

當有許多資料點時,群組會特別有用,因為可以更容易在圖表中找出趨勢。

在群組數列中的資料之前,請確定數列中的資料依 X 值的遞增順序排序。如需排序的詳細資訊,請參閱排序資料

群組公式

群組是使用 DataManipulator 物件完成的。群組可分兩種:依軸標籤和依間隔。如果您想要將空資料點視為具有零值的資料點,請將 DataManipulator.IgnoreEmptyPoints 屬性設定為 false

當您叫用 Group and GroupByAxisLabel 方法時,必須指定公式。您可以針對資料點的部分或全部 Y 值指定個別公式。您必須至少提供一個公式,在這種情況下,會用來計算資料點的所有 Y 值。

公式參數的格式如下:

"formula[, value:formula, [value:formula[,...]]]"

其中 formula 是其中一個公式名稱,而 value 則是套用該公式之資料點的 Y 值名稱 (例如 "Y2")。

例如,如果在群組程序中使用公式字串 "AVE, X:CENTER, Y2:MAX",就會產生結果如下:

  • 將在間隔中央繪製群組資料點。

  • 群組資料點的所有 Y2 值將使用所有輸入資料點的最大 Y2 值。

  • 將計算所有其他 Y 值的平均值。

下表列出這些公式及其用途說明。請注意,針對 X 值,預設公式 (即未指定時套用的公式) 為 "First" 公式。另外也請注意,X 值的公式只會決定針對指定的間隔繪製所產生的資料點的位置 (例如,沿著間隔的左右界限或間隔的中央)。

注意

根據預設,"FIRST" 公式會用來計算 X 值。

公式

說明

用於 X 值

AVE

特定間隔內所有資料點的平均值。

否。

MAX

特定間隔內所有資料點的最大值。

否。

MIN

特定間隔內所有資料點的最小值。

否。

SUM

特定間隔內所有資料點的總值。

否。

LAST

特定間隔內所有資料點的最後一個值。

是。新的資料點會在間隔的最右方邊界繪製。

FIRST (預設值)

特定間隔內所有資料點的第一個值。

是。新的資料點會在間隔的最左方邊界繪製。

HiLoOpCl

計算最大、最小、開始和結束值。開始值是間隔的第一個值,而結束值是間隔的最後一個值。

附註附註
這個公式會傳回四個 Y 值,僅適用於使用四個 Y 值的圖表類型 (例如 K 線圖)。

否。

HiLo

特定間隔內所有資料點的最大和最小值。

附註附註
這個公式會傳回兩個 Y 值,僅適用於使用兩個 Y 值的圖表類型 (例如泡泡圖)。

否。

Count

組成一個資料點的資料點數目。

否。

DistinctCount

組成一個資料點的資料點數目。主要 Y 值相同的資料點視為一個資料點。

否。

Variance

特定間隔內所有資料點之間的變異數。

否。

Deviation

特定間隔內所有資料點之間的偏差值。

否。

Center

特定間隔內所有資料點之間的偏差值。

是。新的資料點會在間隔的中央繪製。

依間隔群組

使用 Group 方法可依間隔群組。這個方法會使用 X 值將數列資料點分成數個間隔,然後以一個資料點取代每個間隔。

下列程式碼示範如何依季群組,並將結果數列儲存在名為 "ResultSeries" 的數列中。

' Group points by year quarters.
Chart1.DataManipulator.Group("AVE", 3, IntervalType.Months, "MySeries", "ResultSeries")
// Group points by year quarters.
Chart1.DataManipulator.Group("AVE", 3, IntervalType.Months, "MySeries", "ResultSeries");

依軸標籤群組

使用 GroupByAxisLabel 方法可依軸標籤群組。這個方法會將 AxisLabel 屬性值相同的所有資料點群組在一起,然後使用您指定的公式計算結果 Y 值。

注意

此群組作業會讓資料點依其 AxisLabel 屬性的遞增順序排序。

以下的程式碼會將代表不同銷售資料的資料點群組在一起。它假設資料點的 X 值繫結至儲存銷售人員姓名的字串,而每個銷售人員姓名都是使用 AxisLabel 屬性儲存。它會將每個銷售人員姓名的銷售額相加,然後依銷售人員將總額輸出至輸入數列 (預設輸出數列)。

' Group by salesperson name, and display total sale amounts.
Chart1.DataManipulator.GroupByAxisLabel("SUM", "GoldMedals")
// Group by salesperson name, and display total sale amounts.
Chart1.DataManipulator.GroupByAxisLabel("SUM", "GoldMedals");

群組多個數列

群組多個數列的方式是在 GroupGroupByAxisLabel 方法中指定數列名稱的逗號分隔清單。

提示

如果指定了輸出數列,則輸出數列的數目必須與輸入數列的數目相同。否則,方法會擲回例外狀況。

如果您指定 "*" 做為輸入數列,方法會將 Chart.Series 集合中的所有數列群組在一起。

以下範例將兩個數列群組在一起:MySeries1 和 MySeries2。

' Group two series by week, using averaged Y values.
Chart1.DataManipulator.Group("AVE", 1, IntervalType.Weeks, "MySeries1, MySeries2")
// Group two series by week, using averaged Y values.
Chart1.DataManipulator.Group("AVE", 1, IntervalType.Weeks, "MySeries1, MySeries2");

請參閱

參考

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

其他資源

資料繫結和操作