FlexChart for WinForms
WinForms レーダーチャート
WinForms のチャートタイプ > 特殊チャート > WinForms レーダーチャート

レーダーチャートは、複数の値グループをさまざまな機能や特性について比較した結果を可視化する際に役立つ放射状のチャートです。このチャートで各変数は、中心から等間隔の放射状に配置された軸上に表されます。これらの軸は同じ目盛りマークとスケールを持ちます。各観測結果のデータは、これらの軸に沿ってプロットされた後、結ばれて 1 つの多角形を形成します。複数の観測結果、つまり複数の多角形をプロットすれば、各変数の異常値を特定する方法として優れたチャートになります。一般にレーダーチャートは、次のチャートに示すように、収益や費用などのパフォーマンスの分析や値の比較に使用されます。

ポーラチャートはレーダーチャートの一種で、X 値は角度値を度単位で指定する数値になります。

レーダーチャート

ポーラチャート

WinForms レーダーチャート WinForms ポーラチャート

WinForms レーダーチャートの作成

FlexChart for WinForms は、FlexRadar クラスによって表されるスタンドアロンコントロールによってレーダーチャートを提供します。DataSource プロパティを使用して、チャートにデータを連結できます。Binding プロパティと BindingX プロパティを設定して、X 値と Y 値をチャートに提供する必要があります。また、StartAngle プロパティを設定して、指定した角度から時計回りにチャートを描画し始めることもできます。レーダーチャートを反時計回りにレンダリングするには、Reversed プロパティを true に設定する必要があります。FlexChart には ChartType プロパティも用意されており、レーダーチャートを折れ線、折れ線シンボル、散布図、または面グラフ形式のどれで表示するかを選択できます。このプロパティは、RadarChartType 列挙に含まれる値を受け取ります。

レーダー折れ線グラフ

レーダー面グラフ

レーダー散布図

WinForms 折れ線レーダーチャート WinForms 面レーダーチャート WinForms 散布図レーダーチャート

FlexChart を使用してレーダーチャートを作成するには

設計時

  1. FlexRadar コントロールをフォームにドラッグアンドドロップします。
  2. フォームで FlexRadar コントロールを右クリックして[プロパティ]ウィンドウを開きます。
  3. DataSource プロパティを使用してデータソースを設定します。
  4. BindingX プロパティと Binding プロパティをそれぞれ設定してチャートを構成します。

コードの使用

WinForms レーダーチャートをコードで作成するには、コントロールを初期化した後に、最初にデフォルトの系列をクリアします。DataSource プロパティを使用してデータソースを設定し、BindingX プロパティを設定して X 軸(放射軸)を構成します。 次に、Add メソッドを使用して新しい系列を追加し、追加した系列ごとに Binding プロパティを設定します。

// 系列をクリアします
flexRadar1.Series.Clear();

// 単価フィールドの系列を作成して追加します
C1.Win.Chart.Series series1 = new C1.Win.Chart.Series();
flexRadar1.Series.Add(series1);
series1.Binding = "Unit Price";
series1.Name = "Unit Price";

// 在庫数フィールドの系列を作成して追加します
C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();
flexRadar1.Series.Add(series2);
series2.Binding = "Units In Stock";
series2.Name = "Units In Stock";

// 注文単位フィールドの系列を作成して追加します
C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();
flexRadar1.Series.Add(series3);
series3.Binding = "Units On Order";
series3.Name = "Units On Order";

// データソースを指定します
flexRadar1.DataSource = GetData();

// X軸をバインドします
flexRadar1.BindingX = "Beverages";
' 系列をクリアします
flexRadar1.Series.Clear()

' 単価フィールドの系列を作成して追加します
Dim series1 As New C1.Win.Chart.Series()
flexRadar1.Series.Add(series1)
series1.Binding = "Unit Price"
series1.Name = "Unit Price"

' 在庫数フィールドの系列を作成して追加します
Dim series2 As New C1.Win.Chart.Series()
flexRadar1.Series.Add(series2)
series2.Binding = "Units In Stock"
series2.Name = "Units In Stock"

' 注文単位フィールドの系列を作成して追加します
Dim series3 As New C1.Win.Chart.Series()
flexRadar1.Series.Add(series3)
series3.Binding = "Units On Order"
series3.Name = "Units On Order"

' データソースを指定します
flexRadar1.DataSource = GetData()

' X軸をバインドします
flexRadar1.BindingX = "Beverages"

上記のサンプルコードは、GetData という名前のカスタムメソッドを使用してチャートにデータを提供しています。要件に基づいてデータソースを設定できます。

    /// <summary>
    /// FlexRadarのデータを作成するメソッド
    /// </summary>
    Random rnd = new Random();
public DataTable GetData()
{
    // データテーブルを作成します
    DataTable dt = new DataTable("Product Comparison");

    // 列をデータテーブルに追加します
    dt.Columns.Add("Beverages", typeof(string));
    dt.Columns.Add("Unit Price", typeof(int));
    dt.Columns.Add("Units In Stock", typeof(int));
    dt.Columns.Add("Units On Order", typeof(int));

    // 行をデータテーブルに追加します
    dt.Rows.Add("Tea", 18, 39, 40);
    dt.Rows.Add("Coffee", 19, 17, 70);
    dt.Rows.Add("Cocktail", 10, 13, 30);
    dt.Rows.Add("Mock Tail", 22, 53, 20);
    dt.Rows.Add("Soft Drink", 21, 120, 70);
    dt.Rows.Add("Mineral Water", 25, 90, 40);
    return dt;
}
''' <summary>
''' FlexRadarのデータを作成するメソッド
''' </summary>
Private rnd As New Random()
Public Function GetData() As DataTable
    ' データテーブルを作成します
    Dim dt As New DataTable("Product Comparison")

    ' 列をデータテーブルに追加します
    dt.Columns.Add("Beverages", GetType(String))
    dt.Columns.Add("Unit Price", GetType(Integer))
    dt.Columns.Add("Units In Stock", GetType(Integer))
    dt.Columns.Add("Units On Order", GetType(Integer))

    ' 行をデータテーブルに追加します
    dt.Rows.Add("Tea", 18, 39, 40)
    dt.Rows.Add("Coffee", 19, 17, 70)
    dt.Rows.Add("Cocktail", 10, 13, 30)
    dt.Rows.Add("Mock Tail", 22, 53, 20)
    dt.Rows.Add("Soft Drink", 21, 120, 70)
    dt.Rows.Add("Mineral Water", 25, 90, 40)
    Return dt
End Function