バージョン

散布等高線シリーズの使用

目的

このトピックでは、XamDataChart™ コントロールで ScatterContourSeries 要素を使用する方法を提供します。

散布エリア シリーズ

概要

XamDataChart コントロールでは、ScatterContourSeries が各ポイントに割り当てられた数値を使って、X および Y データの三角形分割に基づいて、色付きの等高線を描画します。

このシリーズのタイプはヒート マップ、磁場の強さ、またはオフィスの WIFI の強さを描画する場合などに便利です。ScatterContourSeriesScatterAreaSeries と同様ですが、データを塗りつぶしスケールを使用する色付きの等高線として表し、散布エリア シリーズはカラー スケールを使用して補間された面としてデータを表します。

プレビュー

以下は、3D サーフェイス データをプロットする ScatterContourSeries を持つ XamDataChart コントロールのプレビューです。Z 軸は、サーフェイスでの色変更として描画されます。より低い Z 値は青色で、より高い値は赤色になります。

DataChart Using Scatter Contour Series 1.png

データ要件

XamDataChart コントロールのシリーズの他のタイプと同様、ScatterContourSeries には、データ バインディングのための ItemsSource プロパティがあります。このプロパティは、ListCollectionQueueStack など IEnumerable インターフェイスを実装するオブジェクトにバインドできます。また、このオブジェクトで各項目にポイント位置 (X および Y) を保存する 2 つのデータ列が必要です。これらのデータ列は、XMemberPath および YMemberPath プロパティにマップされます。データにも各ポイントの値を保存するデータ列が必要です。この値は ScatterContourSeries でサーフェイスの色を設定するために使用されます。この値列は、ValueMemberPath プロパティにマップされます。

ScatterContourSeries は、三角測量が TrianglesSource プロパティに設定されていない場合、ItemsSource の項目で定義済みのデータ三角測量を自動的に実行します。 ただし、三角測量の計算は非常に時間のかかるプロセスであるため、このプロパティのために TriangulationSource を指定すると、ランタイム パフォーマンスがよくなります。特にデータ項目が多数ある場合には顕著です。

Note
注:

三角測量データの作成、保存、読み込みのプロセスに関する詳細は、データの三角測量トピックを参照してください。

データ バインディング

以下の表に、データ バインドに使用される ScatterContourSeries の必須プロパティをまとめています。

プロパティ名 プロパティ タイプ 説明

IEnumerable

TrianglesSource プロパティに提供する三角測量データがない場合三角測量を実行するための項目のソースを取得または設定します。

string

ItemsSource の各項目の X 位置を含むプロパティの名前。

string

ItemsSource の各項目の Y 位置を含むプロパティの名前。

string

FillScale プロパティに設定された塗りつぶしスケールによってブラシへの変換が可能な数値を含む ItemsSource の各項目のプロパティの名前。

以下の表に、データ バインドに使用される ScatterContourSeries のオプションのプロパティをまとめています。

プロパティ名 プロパティ タイプ 説明

IEnumerable

三角測量データのソースを取得または設定します。TriangulationSource オブジェクトの Triangles をこのプロパティに設定すると、ランタイム パフォーマンスとシリーズの描画の両方が改善します。

string

各三角形に対して ItemsSource の最初の頂点のインデックスを含む、TrianglesSource 項目のプロパティ名。このプロパティの設定は必須ではありません。カスタムの三角測量ロジックが提供されない場合はデフォルトで取得されます。

string

各三角形に対して ItemsSource の第 2 の頂点のインデックスを含む、TrianglesSource 項目のプロパティ名。このプロパティの設定は必須ではありません。カスタムの三角測量ロジックが提供されない場合はデフォルトで取得されます。

string

各三角形に対して ItemsSource の第 3 の頂点のインデックスを含む、TrianglesSource 項目のプロパティ名。このプロパティの設定は必須ではありません。カスタムの三角測量ロジックが提供されない場合はデフォルトで取得されます。

等高線の塗りつぶしスケール

ScatterContourSeriesFillScale を使用して等高線の塗りブラシを解決します。

提供された ValueBrushScale クラスはユーザーのほとんどのカラーリング ニーズを満たすはずですが、カスタムのカラリング ロジックのアプリケーションが ValueBrushScale クラスを継承できます。

以下の表は ScatterContourSeries の面のカラーリングに影響する ValueBrushScale プロパティをリストします。

プロパティ名 プロパティ タイプ 説明

ScatterContourSeries の塗りつぶし等高線のためのブラシのコレクションを取得または設定します。

double

塗りつぶしスケールでブラシを割り当てるための最高値。

double

塗りつぶしスケールでブラシを割り当てるための最低値。

等高線値リゾルバー

ScatterContourSeries は、ValueMemberPath プロパティにマップされた項目の最小値と最大値の間を等間隔でちょうど 10 本の等高線を使用して描画します。これより多くの等高線が必要な場合、またはこれより少ない等高線が必要な場合、等高線の数を持つ LinearContourValueResolverScatterContourSeriesValueResolver プロパティに割り当てることができます。

以下のコードは、ScatterContourSeries の等高線の数を構成する方法を示します。

XAML の場合:

<ig:ScatterContourSeries>
        <ig:ScatterContourSeries.ValueResolver>
                  <ig:LinearContourValueResolver ValueCount="5" />
        </ig:ScatterContourSeries.ValueResolver>
</ig:ScatterContourSeries>

C# の場合:

var valueResolver = new LinearContourValueResolver();
valueResolver.ValueCount = 5;
scatterContourSeries1.ValueResolver = valueResolver;

Visual Basic の場合:

Dim valueResolver As New LinearContourValueResolver()
valueResolver.ValueCount = 5
scatterContourSeries1.ValueResolver = valueResolver

アプリケーションで等高線の位置を決定するには、カスタムの値リゾルバーを実装します。これは、ContourValueResolver から継承し GetContourValues メソッドをオーバーライドすることによって実行されます。

以下のコードは、定義済みの位置に等高線を指定するカスタムの等高線値リゾルバーの実装を示します。

C# の場合:

public class CustomValueResolver : Infragistics.Controls.Charts.ContourValueResolver
{
    public override IEnumerable<double> GetContourValues(IFastItemColumn<double> valueColumn)
    {
        return new double[] {1, 2, 4, 5, 8};
    }
}

Visual Basic の場合:

Public Class CustomValueResolver
    Inherits Infragistics.Controls.Charts.ContourValueResolver
    Overrides Function GetContourValues(valueColumn As IFastItemColumn(Of Double)) As IEnumerable(Of Double)
        Return New Double() { 1, 2, 4, 5, 8 }
    End Function
End Class

以下のコードは、以上のスクリーンショットを作成するために ScatterContourSeries を 3D サーフェイス データにバインドする方法を紹介します。使用される 3D サーフェイス データはここです。

XAML の場合:

<ig:XamDataChart>
    <ig:XamDataChart.Axes>
        <ig:NumericXAxis x:Name="xAxis"/>
        <ig:NumericYAxis x:Name="yAxis"/>
    </ig:XamDataChart.Axes>
    <ig:XamDataChart.Series>
        <ig:ScatterContourSeries XAxis="{Binding ElementName=xAxis}"
                                 YAxis="{Binding ElementName=yAxis}"
                                 XMemberPath="X"
                                 YMemberPath="Y"
                                 ValueMemberPath="Z">
            <ig:ScatterContourSeries.ItemsSource>
                <model:CosXPlusCosY "/>
            </ig:ScatterContourSeries.ItemsSource>
            <ig:ScatterContourSeries.FillScale>
                <ig:ValueBrushScale>
                    <ig:ValueBrushScale.Brushes>
                        <SolidColorBrush>Blue</SolidColorBrush>
                        <SolidColorBrush>Green</SolidColorBrush>
                        <SolidColorBrush>Yellow</SolidColorBrush>
                        <SolidColorBrush>Red</SolidColorBrush>
                    </ig:ValueBrushScale.Brushes>
                </ig:CustomPaletteColorScale>
            </ig:ScatterContourSeries.FillScale>
        </ig:ScatterContourSeries>
    </ig:XamDataChart.Series>
</ig:XamDataChart>

Visual Basic の場合:

' ScatterContourSeries requires numeric X and Y axis
Dim xAxis As New NumericXAxis()
Dim yAxis As New NumericYAxis()
Me.dataChart.Axes.Add(xAxis)
Me.dataChart.Axes.Add(yAxis)

' create and set data binding to the ScatterContourSeries
Dim series As New ScatterContourSeries()
series.ItemsSource = New CosXPlusCosY()
series.XMemberPath = "X"
series.YMemberPath = "Y"
series.ValueMemberPath = "Z"
series.XAxis = xAxis
series.YAxis = yAxis

' set a color scale
Dim brushScale As New ValueBrushScale()
brushScale.Brushes.Add(new SolidColorBrush(Colors.Blue))
brushScale.Brushes.Add(new SolidColorBrush(Colors.Green))
brushScale.Brushes.Add(new SolidColorBrush(Colors.Yellow))
brushScale.Brushes.Add(new SolidColorBrush(Colors.Red))
series.FillScale = brushScale

' add the ScatterContourSeries to the XamDataChart
Me.dataChart.Series.Add(series)

C# の場合:

// ScatterContourSeries requires numeric X and Y axis
var xAxis = new NumericXAxis();
var yAxis = new NumericYAxis();
this.dataChart.Axes.Add(xAxis);
this.dataChart.Axes.Add(yAxis);

// create and set data binding to the ScatterContourSeries;
var series = new ScatterContourSeries();
series.ItemsSource = New CosXPlusCosY();
series.XMemberPath = "X";
series.YMemberPath = "Y";
series.ValueMemberPath = "Z";
series.XAxis = xAxis;
series.YAxis = yAxis;

// set a color scale
var brushScale = new ValueBrushScale();
brushScale.Brushes.Add(new SolidColorBrush(Colors.Blue));
brushScale.Brushes.Add(new SolidColorBrush(Colors.Green));
brushScale.Brushes.Add(new SolidColorBrush(Colors.Yellow));
brushScale.Brushes.Add(new SolidColorBrush(Colors.Red));
series.FillScale = brushScale;

// add the ScatterContourSeries to the XamDataChart
this.dataChart.Series.Add(series);

関連コンテンツ

このトピックに関連する追加情報については、以下のトピックを参照してください。

トピック 目的

このトピックでは、コントロールをアプリケーション ページに追加する方法を示します。

このトピックでは、XamDataChart コントロールで利用可能な散布シリーズに関する情報を提供します。

このトピックは三角測量についての情報を提供します。