バージョン

シリーズ データの相関

このトピックでは XamDataChart™ コントロールのシリーズ データの相関機能を紹介し、コード例を示しつつそれを説明します。

概要

トピックは以下のとおりです。

概要

シリーズ データの相関は、 ScatterSeries を使用して表示されるデータ セットの 2 変数間の相関の計算を可能にする CorrelationCalculator をもつ XamDataChart コントロールの統合です。データの相関はデータセット中の 2 つの変数が互いにどう関係し合っているかを識別するのに役立ちます。たとえば、XamDataChart コントロールにプロットされた高血圧測定値と患者の年齢グループとの間に関連があるかどうかを判断するのに相関を使うことができます。CorrelationCalculator やデータ相関の異なるタイプについてのより詳細な情報は Infragistics Math Calculators のトピックを参照してください。

要件

このセクションでは XamDataChart コントロールのシリーズ データの相関機能を使用する際の前提条件を示しています。

アセンブリの要件

表 1 – WPF プロジェクトに加えられる必要がある NuGet パッケージのリスト。

NuGet パッケージ 説明

Infragistics.Math.Calculators

相関、平均、中央値、バリアンスなど多くの数値を計算するための Math Calculators を含む Ultimate UI for WPF NuGet パッケージ。

Infragistics.WPF.Math

標準的な数学定数およびさまざまな数学的なオブジェクトで使用するように設計された汎用的な数学関数を含む Ultimate UI for WPF NuGet パッケージ。

Infragistics.WPF.Charts

データをプロットするための XamDataChart コントロールおよびさまざまなタイプのシリーズと軸を含む Ultimate UI for WPF NuGet パッケージ。

データ要件

CorrelationCalculator は IEnumerable インターフェイス (ListCollectionQueueStack など) を導入しなければならないデータ オブジェクトを必要とし、このオブジェクトの項目はデータ相関が計算される 2 つの数値データ列でなければなりません。さらに、これらの 2 つのデータ列は CorrelationCalculator と ScatterSeries オブジェクトの XMemberPath と YMemberPath プロパティにマップされなければなりません。

上記の基準を満たすオブジェクトの例は CorrelationDataSample で、 相関データの例リソースからダウンロードしてプロジェクトで使用できます。

Note
注:

データが CorrelationCalculator の ItemsSource へバインドされると、相関が計算され、数値として CorrelationCalculator の値プロパティに格納されます。

次の例は XamDataChart コントロールの ScatterSeries にバインドされたデータの相関がどのように計算され、チャートの凡例にシリーズのタイトルとして結果が表示されるかについて説明します。これは、アセンブリ要件セクションにリストされている必要なアセンブリをすべて追加していることを前提とします。

プレビュー

Series Data Correlation 01.png

図 1 – CorrelationCalculator をもつ XamDataChart コントロールの組み込み例

手順

この手順は CorrelationCalculator をもつ XamDataChart コントロールを組み込み、計算結果を表示するために必要なステップを提供します。

Note
注:

この例は CorrelationDataSample オブジェクトをデータ ソースとして使用しますが、自身のデータを使用することもできます。データ要件のより詳細な情報はこのトピックのデータ要件セクションを参照してください。

  1. 相関を計算するためのデータを提供するデータ ソースとして 相関データ例オブジェクトを追加します。

XAML の場合:

xmlns:local="clr-namespace:Infragistics.Samples.Data.Models"

XAML の場合:

<local:CorrelationDataSample x:Key="Data">
    <local:CorrelationDataSample.Settings>
        <local:CorrelationDataSettings DataDistribution="RandomlyIncreasing" />
    </local:CorrelationDataSample.Settings>
</local:CorrelationDataSample>

Visual Basic の場合:

Imports Infragistics.Samples.Data.Models
...
Dim data As New CorrelationDataSample()
data.Settings = New CorrelationDataSettings()
data.Settings.DataDistribution = DataDistribution.RandomlyIncreasing

C# の場合:

using Infragistics.Samples.Data.Models;
...
CorrelationDataSample data = new CorrelationDataSample();
data.Settings = new CorrelationDataSettings();
data.Settings.DataDistribution = DataDistribution.RandomlyIncreasing;
Note
注:

CorrelationCalculator は視覚的な要素ではなく、データ ソースを定義するのと同じようにアプリケーション、ページ、またはコントロールのレベルでリソース セクションに定義する必要があります。

  1. 適切なデータ バインディングで CorrelationCalculator のインスタンスを作成します。

XAML の場合:

xmlns:ig="http://schemas.infragistics.com/xaml"
xmlns:igMath="http://schemas.infragistics.com/xaml"

XAML の場合:

<ig:CorrelationCalculator x:Key="correlationCalc"
                          XMemberPath="X" YMemberPath="Y"
                          ItemsSource="{StaticResource Data}" />

Visual Basic の場合:

Imports Infragistics.Math.Calculators
...
Dim correlationCalc As New CorrelationCalculator()
correlationCalc.XMemberPath = "X"
correlationCalc.YMemberPath = "Y"
correlationCalc.ItemsSource = data

C# の場合:

using Infragistics.Math.Calculators;
...
CorrelationCalculator correlationCalc = new CorrelationCalculator();
correlationCalc.XMemberPath = "X";
correlationCalc.YMemberPath = "Y";
correlationCalc.ItemsSource = data;
  1. ScatterSeries オブジェクトのタイトル プロパティを CorrelationCalculator リソースの値プロパティにバインドします。あるいは、静的なリソースにバインディングして他のコントロール (たとえば、TextBlock) のデータ相関結果を表示できます。

XAML の場合:

<Grid >
    <ig:XamDataChart x:Name="DataChart" Legend="{Binding ElementName=Legend1}" Margin="5">
        <ig:XamDataChart.Axes>
            <ig:NumericXAxis x:Name="xAxis" />
            <ig:NumericYAxis x:Name="yAxis" />
        </ig:XamDataChart.Axes>
        <ig:XamDataChart.Series>
            <!-- ========================================================================== -->
            <ig:ScatterSeries Title="{Binding Value, Source={StaticResource correlationCalc}}"
                              ItemsSource="{StaticResource Data}"
                              XMemberPath="X" YMemberPath="Y"
                              XAxis="{Binding ElementName=xAxis}"
                              YAxis="{Binding ElementName=yAxis}">
            </ig:ScatterSeries>
            <!-- ========================================================================== -->
        </ig:XamDataChart.Series>
    </ig:XamDataChart>
    <ig:Legend x:Name="Legend1" Content="Data Correlation"
               VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10"/>
</Grid>

Visual Basic の場合:

Imports Infragistics.Controls.Charts
...
Dim binding As New Binding()
binding.Source = correlationCalc
binding.Path = New PropertyPath("Value")
binding.Mode = BindingMode.OneWay
...
Dim series As ScatterSeries = Me.DataChart.Series.OfType(Of ScatterSeries)().First()
series.SetBinding(Series.TitleProperty, binding)

C# の場合:

using Infragistics.Controls.Charts;
...
Binding binding = new Binding();
binding.Source = correlationCalc;
binding.Path = new PropertyPath("Value");
binding.Mode = BindingMode.OneWay;
...
ScatterSeries series = this.DataChart.Series.OfType<ScatterSeries>().First();
series.SetBinding(Series.TitleProperty, binding);