グラフ コントロールでの空のデータ ポイントの使用
空のデータ ポイントとは、Y 値がないポイントです。空のデータ ポイントは、グラフ データの外観や構造を制御するときや、データが null 値のポイントを処理するときに役立ちます。
次の場合に空のポイントを使用します。
NULL 値を持つポイントを表す場合。
プロット エリアで欠落したデータ ポイントの外観を変更する場合。
複数の系列を整列する場合。データの整列の詳細については、「データの整列」を参照してください。
空のポイントの追加
次のいずれかの方法で、データに空のポイントを追加します。
データ ポイントの Empty を True に設定します。
データ ポイントを DBNull 型の値にデータバインドします。
DataManipulator クラスの InsertEmptyPoints メソッドを使用して空のポイントを手動で挿入します。
InsertEmptyPoints メソッドでは、X 軸に沿った間隔を使用して、各間隔にデータ ポイントが存在するかどうかをチェックします。ポイントが存在しない場合、このメソッドによって空のポイントが挿入されます。空のポイントを適切に表示するために、グラフ領域の主軸または第 2 軸 (ChartArea.AxisX オブジェクトまたは ChartArea.AxisX2 オブジェクト) で、Interval、IntervalOffset、IntervalType、および IntervalOffsetType の各プロパティに対応する間隔を指定します。
また、X 値の範囲を定義して、欠落しているデータ ポイントをチェックすることもできます。
注意
複数の系列に対して InsertEmptyPoints メソッドを使用するには、入力パラメーターにコンマ区切りの一覧で系列名を指定します。
次のコードは、空のポイントを 2 つの系列に挿入する方法の例です。最初のメソッドの呼び出しでは、間隔に 1 日を指定し、Series1 を検証して同じ系列に結果を保存します。2 番目のメソッドの呼び出しでは、オフセットを使用して間隔に毎週月曜日を指定し、結果のデータを ResultSeries という新しい系列に保存します。
Imports Dundas.Charting.WebControl
...
With Chart1.DataManipulator
' Insert empty point for each day if there is no data point present.
.InsertEmptyPoints(1, IntervalType.Days, "Series1")
' Insert empty point for each Monday, but if there is no data point present, then
' Monday is offset by 1 day from the beginning of the week (Sunday).
.InsertEmptyPoints(1, IntervalType.Weeks, 1, IntervalType.Days, "Series2", "ResultSeries")
End With
// Insert empty point for each day if there is no data point present.
Chart1.DataManipulator.InsertEmptyPoints(1, IntervalType.Days, "Series1");
// Insert empty point for each Monday, but if there is no data point present, then
// Monday is offset by 1 day from the beginning of the week (Sunday).
Chart1.DataManipulator.InsertEmptyPoints(1, IntervalType.Weeks, 1, IntervalType.Days, "Series2", "ResultSeries");
空のポイントの外観の変更
適用できるグラフの種類で描画される空のポイントの外観を変更するには、Series.EmptyPointStyle プロパティを使用します。EmptyPointValue カスタム プロパティを使用すると、空のポイントをゼロ、または左右のポイントの平均値として扱うことができます。カスタム プロパティの詳細については、「カスタム プロパティ」を参照してください。
Series.EmptyPointStyle プロパティを使用する方法を次のコード例に示します。
' Show marker (red cross) instead of a line for first series.
Chart1.Series("Series1").EmptyPointStyle.BorderWidth = 1
Chart1.Series("Series1").EmptyPointStyle.BorderColor = Color.Black
Chart1.Series("Series1").EmptyPointStyle.MarkerColor = Color.Red
Chart1.Series("Series1").EmptyPointStyle.MarkerSize = 15
Chart1.Series("Series1").EmptyPointStyle.MarkerStyle = MarkerStyle.Cross
' Show empty point of second series as thin dotted line (treated as an average).
Chart1.Series("Series2").EmptyPointStyle.BorderStyle = ChartDashStyle.DashDotDot
Chart1.Series("Series2").EmptyPointStyle.MarkerColor = Color.FromArgb(64, 64, 64)
' Treat empty point of third series as a zero using the EmptyPointValue custom property.
Chart1.Series("Series3").EmptyPointStyle.BorderWidth = 1
Chart1.Series("Series3").EmptyPointStyle.MarkerColor = Color.FromArgb(0, 192, 0)
Chart1.Series("Series3").EmptyPointStyle.CustomProperties = "EmptyPointValue = Zero"
// Show marker (red cross) instead of a line for first series.
Chart1.Series["Series1"].EmptyPointStyle.BorderWidth = 1;
Chart1.Series["Series1"].EmptyPointStyle.BorderColor = Color.Black;
Chart1.Series["Series1"].EmptyPointStyle.MarkerColor = Color.Red;
Chart1.Series["Series1"].EmptyPointStyle.MarkerSize = 15;
Chart1.Series["Series1"].EmptyPointStyle.MarkerStyle = MarkerStyle.Cross;
// Show empty point of second series as thin dotted line (treated as an average).
Chart1.Series["Series2"].EmptyPointStyle.BorderStyle = ChartDashStyle.DashDotDot;
Chart1.Series["Series2"].EmptyPointStyle.MarkerColor = Color.FromArgb(64, 64, 64);
// Treat empty point of third series as a zero using the EmptyPointValue custom property.
Chart1.Series["Series3"].EmptyPointStyle.BorderWidth = 1;
Chart1.Series["Series3"].EmptyPointStyle.MarkerColor = Color.FromArgb(0, 192, 0);
Chart1.Series["Series3"].EmptyPointStyle.CustomProperties = "EmptyPointValue = Zero";
参照
関連項目
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting