バージョン

範囲棒シリーズ

このトピックは、コード例を示して、 RangeBarSeriesUltraDataChart™ コントロールで使用する方法を説明します。

概要

範囲棒シリーズは カテゴリ シリーズ のグループに属し、データ ポイントの 2 つの値の差を示す横棒のコレクションを使用して描画します。このタイプのシリーズは、同一データ ポイントにおける安値と高値の変化量を強調したり、複数の項目を比較したりします。範囲の値は x 軸 (NumericXAxis) に表され、カテゴリは y 軸 (CategoryYAxis) に表示されます。言い換えると、RangeBarSeries は、RangeColumnSeries のように描画されますが、時計周りに 90 度回転されます。シリーズの他のタイプと軸のタイプを含んだより概念的情報は、カテゴリ シリーズチャート軸トピックを参照してください。

シリーズ プレビュー

図 1 と 2 は、 RangeBarSeriesRangeColumnSeries が UltraDataChart コントロールにプロットされた時の外観を示しています。

Using xamDataChart Range Bar Series  01.png

図 1: RangeBarSeries タイプの実装例

Using xamDataChart Range Area Series  02.png

図 2: RangeColumnSeries タイプの実装例

シリーズの提案

UltraDataChart はシリーズのタイプ数に制限なくプロットできますが、同様タイプのシリーズで範囲棒シリーズを使用することをお勧めします。範囲棒シリーズで推奨されるシリーズのタイプ、および複数のシリーズ タイプのプロット方法に関する情報は、 複数シリーズトピックを参照してください。

データ要件

UltraDataChart コントロールによって固有のデータ モデルにチャートを簡単にバインドすることができますが、そのシリーズが必要とするデータの適切な量とタイプを必ず提供するようにしてください。使用しているシリーズのタイプに基づいた最小要件をデータが満たさないと、コントロールによってエラーが生成されます。データ シリーズの要件についての詳細は、 シリーズ要件カテゴリ シリーズ を参照してください。

以下は、 RangeBarSeries タイプのデータ要件の一覧です。

  • データモデルには、値の間の範囲を描画するために少なくとも 2 つの数値データ列が含まれていなければなりません。

  • データ モデルにはラベルのためのオプションの文字列または日時フィールドを含むことができます。

  • データソースに少なくとも 1 つのデータ項目を含む必要があります。

データ描画の規則

RangeBarSeries は以下の規則を使用してデータを描画します。

  • データ マッピングの LowMemberPathHighMemberPath プロパティで指定された 2 つのデータ値をもつ各行はこれらのデータ値の間の差を表す個別の横棒で描画されます。

  • y 軸上のデータ マッピングの Label プロパティにマップされる文字列または日時の列はカテゴリ ラベルとして使用されます。Label のデータ マッピングが指定されない場合、デフォルト ラベルが使用されます。

  • カテゴリ ラベルは y 軸上に描かれます。データ値は x 軸上に描かれます。

  • 描画する時、RangeBarSeries の複数シリーズは各クラスターがデータ ポイントを表すクラスターに描画されます。UltraDataChart コントロールの Series コレクションの最初のシリーズは、クラスターの下側に描画されます。各連続するシリーズは、前のシリーズの上側に描画されます。詳細は、複数シリーズのトピックを参照してください。

データ バインディング例

以下のコード スニペットは、 RangeBarSeries オブジェクトをカテゴリ データ サンプル (エネルギー製造データ サンプルからダウンロード可能) にバインドする方法を示します。RangeBarSeries のデータ要件の詳細な情報はこのトピックのデータ要件セクションを参照してください。

C# の場合:

var data = new EnergyDataSource();
var xAxis = new NumericXAxis();
var yAxis = new CategoryYAxis();
yAxis.DataSource = data;
yAxis.Label = "{Country}";

var series1 = new RangeBarSeries();
series1.DataSource = data;
series1.HighMemberPath = "Coal";
series1.LowMemberPath = "Oil";
series1.Title = "Coal vs Oil";
series1.XAxis = xAxis;
series1.YAxis = yAxis;
var series2 = new RangeBarSeries();
series2.DataSource = data;
series2.HighMemberPath = "Hydro";
series2.LowMemberPath = "Nuclear";
series2.Title = "Hydro vs Nuclear";
series2.XAxis = xAxis;
series2.YAxis = yAxis;
var chart = new UltraDataChart();
chart.Axes.Add(xAxis);
chart.Axes.Add(yAxis);
chart.Series.Add(series1);
chart.Series.Add(series2);

Visual Basic の場合:

Dim data As New EnergyDataSource()
Dim xAxis As New NumericXAxis()
Dim yAxis As New CategoryYAxis()
yAxis.DataSource = data
yAxis.Label = "{Country}"

Dim series1 As New RangeBarSeries()
series1.DataSource = data
series1.HighMemberPath = "Coal"
series1.LowMemberPath = "Oil"
series1.Title = "Coal vs Oil"
series1.XAxis = xAxis
series1.YAxis = yAxis
Dim series2 As New RangeBarSeries()
series2.DataSource = data
series2.HighMemberPath = "Hydro"
series2.LowMemberPath = "Nuclear"
series2.Title = "Hydro vs Nuclear"
series2.XAxis = xAxis
series2.YAxis = yAxis
Dim chart As New UltraDataChart()
chart.Axes.Add(xAxis)
chart.Axes.Add(yAxis)
chart.Series.Add(series1)
chart.Series.Add(series2)