次の方法で共有


グラフ コントロールでのデータのグループ化

グループ化を実行すると、系列内のデータ ポイントが 1 つのグループ化されたポイントで置き換えられます。グループ化された各ポイントの X 値と Y 値は、指定した式と、使用されている各ポイントの元の値を組み合わせて計算されます。

グループ化が特に便利なのは、多数のデータ ポイントがある場合です。グループ化によって、グラフの傾向がわかりやすくなります。

系列内のデータをグループ化する前に、そのデータを X 値で昇順に並べ替えます。並べ替えの詳細については、「データの並べ替え」を参照してください。

式のグループ化

グループ化を実行するには、DataManipulator オブジェクトを使用します。グループ化には、軸ラベルことおよび間隔ごとの 2 種類があります。空のポイントを値がゼロのポイントとして扱う場合、DataManipulator.IgnoreEmptyPoints プロパティを false に設定します。

Group メソッドおよび GroupByAxisLabel メソッドを呼び出す場合、式を指定する必要があります。データ ポイントの Y 値の一部またはすべてについて、別の式を指定することもできます。少なくとも 1 つの式を指定する必要があります。式が 1 つの場合、ポイントのすべての Y 値について、その式が使用されます。

式パラメーターの形式は次のとおりです。

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

この formula は式名の 1 つです。また、value は式を適用するデータ ポイントの Y 値の名前です ("Y2" など)。

たとえば、グループ化手順で "AVE, X:CENTER, Y2:MAX" という式の文字列を使用する場合、結果は次のようになります。

  • 間隔の中央にグループ化されたポイントがプロットされます。

  • グループ化されたポイントのすべての Y2 値について、すべての入力ポイントの最大の Y2 値が使用されます。

  • その他すべての Y 値の平均が計算されます。

これらの式の一覧と、その実行内容の説明については、以下の表を参照してください。X 値の場合、既定の式 (式を指定しない場合に適用されます) は "FIRST" 式です。また、X 値の式は、指定した間隔について結果のデータ ポイントをプロットする位置 (間隔の左の境界、右の境界、または中央) を決めているだけ、という点に注意してください。

注意

既定で、"FIRST" 式は X 値の計算に使用されます。

説明

X 値に使用する

AVE

指定した間隔に含まれるすべてのデータ ポイントの平均値。

いいえ。

MAX

指定した間隔に含まれるすべてのデータ ポイントのうち、最大値。

いいえ。

MIN

指定した間隔に含まれるすべてのデータ ポイントのうち、最小値。

いいえ。

SUM

指定した間隔に含まれるすべてのデータ ポイントの合計値。

いいえ。

LAST

指定した間隔に含まれるすべてのデータ ポイントのうち、最後の値。

はい。新しいデータ ポイントは、間隔の最も右の余白に描画されます。

FIRST (既定)

指定した間隔に含まれるすべてのデータ ポイントのうち、最初の値。

はい。新しいデータ ポイントは、間隔の最も左の余白に描画されます。

HiLoOpCl

最大値、最小値、開始値、および終了値を計算します。開始値はその間隔内で最初の値、終了値はその間隔で最後の値です。

メモメモ
この式は 4 つの Y 値を返すため、4 つの Y 値を使用するグラフの種類 (ローソク足チャートなど) にのみ使用できます。

いいえ。

HiLo

指定した間隔に含まれるすべてのデータ ポイントのうち、最大値と最小値。

メモメモ
この式は 2 つの Y 値を返すため、2 つの Y 値を使用するグラフの種類にのみ使用できます (バブル チャートなど)。

いいえ。

Count

1 つのポイントにグループ化されたデータ ポイント数。

いいえ。

DistinctCount

1 つのポイントにグループ化されたデータ ポイント数。主軸の Y 値が同じデータ ポイントは、1 つのポイントと見なされます。

いいえ。

Variance

指定した間隔に含まれるすべてのデータ ポイント間の分散。

いいえ。

Deviation

指定した間隔に含まれるすべてのデータ ポイント間の偏差。

いいえ。

Center

指定した間隔に含まれるすべてのデータ ポイント間の偏差。

はい。新しいデータ ポイントは、間隔の中央に描画されます。

間隔ごとのグループ化

間隔ごとにグループ化するには、Group メソッドを使用します。このメソッドは、X 値を使用して系列のデータ ポイントを間隔に分割し、各間隔を 1 つのポイントで置き換えます。

次のコードは、年の四半期ごとにグループ化し、それを "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");

複数の系列のグループ化

複数の系列をグループ化するには、Group メソッドまたは GroupByAxisLabel メソッドで、系列名をコンマで区切った一覧を指定します。

注意

出力系列を指定する場合、出力系列の数は、入力系列の数と同じにする必要があります。異なる場合、例外がスローされます。

入力系列として "*" を指定した場合、Chart.Series コレクション内のすべての系列がグループ化されます。

この例では、MySeries1 と MySeries2 という 2 つの系列をグループ化します。

' 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

その他の技術情報

データのバインドと操作