FlexChart for WinForms
WinForms 折れ線グラフ
WinForms のチャートタイプ > WinForms 折れ線グラフ

WinForms 折れ線グラフ

折れ線グラフは、データポイントを直線でつないで作成される最も基本的なグラフです。このグラフは、時間や温度などの周期的間隔に対して値を比較することでデータの傾向を可視化します。特定の期間の株の終値、製品の月間平均販売数などは、折れ線グラフによってうまく表現できるデータの好例です。

折れ線シンボルグラフは、折れ線グラフとわずかに異なり、データポイントにマーカーが表示されます。このグラフは、チャートのプロットに使用されたデータポイントを正確に把握する必要がある場合に使用されます。

折れ線グラフ

折れ線グラフ(シンボル付き)

WinForms 折れ線グラフ WinForms 折れ線グラフ(シンボル付き)

WinForms スプライングラフ

スプライングラフは、折れ線グラフの一種で、直線ではなく滑らかな曲線でデータポイントをつなぎます。見栄えという側面とは別に、このグラフは傾向の段階的変化を表示したい場合に好まれます。折れ線グラフのように、株の終値や製品のライフサイクルといったデータがスプラインチャートによってうまく表現できます。

スプライングラフ(シンボル付き)は、スプライングラフの一種で、データポイントにマーカーが付いて表示されます。このグラフは、チャートのプロットに使用されたデータポイントを正確に把握する必要がある場合に使用されます。

スプライングラフ

スプライングラフ(シンボル付き)

WinForms スプライングラフ WinForms スプライングラフ(シンボル付き)

WinForms 階段グラフ

階段チャートは、垂直線と水平線を使用してデータポイントを階段状につないで、進行状況を表現します。このチャートは一般に、不規則な間隔で突然の変化が発生するが、それ以外は一定の値を維持するデータを表示するために使用されます。このチャートを使用して、商品価格の変化、所得に対する税率の変化などをプロットできます。

階段シンボルグラフは、階段グラフとわずかに異なり、データポイントにマーカーが表示されます。このグラフは、チャートのプロットに使用されたデータポイントを正確に把握する必要がある場合に使用されます。

階段グラフ

階段シンボルグラフ

WinForms 階段グラフ WinForms 階段シンボルグラフ

WinForms 折れ線グラフの作成

これらの折れ線グラフは、FlexChart クラスにある ChartType プロパティを次の表に示すように設定することによって作成できます。このプロパティは、C1.Chart 名前空間の ChartType 列挙に含まれる値を受け取ります。

チャートタイプ ChartType プロパティの値
折れ線 折れ線
折れ線グラフ(シンボル付き) LineSymbols
スプライン スプライン
スプラインシンボル SplineSymbols
階段 階段
階段シンボル StepSymbols

FlexChart には、折れ線グラフを積み上げたり、回転させるオプションもあります。積層または 100% 積層折れ線グラフを実現するには、FlexChart クラスの Stacking プロパティをそれぞれ Stacked または Stacked100pc に設定します。このプロパティは、C1.Chart 名前空間の Stacking 列挙に含まれる値を受け取ります。折れ線グラフを回転させるには(X 軸を縦軸、Y 軸を横軸にレンダリングするには)、Rotated プロパティを true に設定します。

シンボルグラフの場合は、デフォルトで FlexChart は、標準のサイズとスタイルの丸記号をレンダリングします。ただし、これは系列の SymbolMarkerSymbolSize、および SymbolStyle プロパティを設定することで変更できます。

FlexChart を使用して折れ線グラフを作成するには

設計時

  1. フォームで FlexChart コントロールを右クリックして[プロパティ]ウィンドウを開きます。
  2. ChartType プロパティに移動し、値を Line に設定して単純な折れ線グラフを作成します。
  3. DataSource プロパティを使用してデータソースを設定します。
  4. BindingX および Binding プロパティを設定して、X 軸と Y 軸の値をそれぞれ構成します。

コードの使用

WinForms 折れ線グラフをコードで作成するには、コントロールを初期化した後に、最初にデフォルトの系列をクリアし、Add メソッドを使用して新しい系列を追加します。DataSource プロパティを使用してデータソースを設定し、BindingX および Binding プロパティを設定して X 軸と Y 軸を構成します。また、ChartType などの必要なプロパティを使用して、チャートを設定する必要があります。

flexChart1.Series.Clear();

// チャートタイプを設定します
this.flexChart1.ChartType = C1.Chart.ChartType.Line;

// チャートのヘッダーを設定します
this.flexChart1.Header.Content = "DateWise Revenue";

// チャートに系列を追加し、DataCollectionの「Revenue」フィールドにバインドします
this.flexChart1.Series.Add(new C1.Win.Chart.Series
{
    // Nameプロパティを使用して、凡例の系列に対応して表示される文字列を指定します
    Name = "Sales",
    Binding = "Revenue",              
});

// チャートのX軸を「Date」にバインドして、日付が横軸に表示されるようにします
this.flexChart1.BindingX = "Date";

// データをFlexChartに渡します
this.flexChart1.DataSource = GetProductRevenue();
flexChart1.Series.Clear()

' チャートタイプを設定します
Me.flexChart1.ChartType = C1.Chart.ChartType.Line

' チャートのヘッダーを設定します
Me.flexChart1.Header.Content = "DateWise Revenue"

' チャートに系列を追加し、DataCollectionの「Revenue」フィールドにバインドします
' Nameプロパティを使用して、凡例の系列に対応して表示される文字列を指定します
Me.flexChart1.Series.Add(New C1.Win.Chart.Series() With {
      .Name = "Sales",
      .Binding = "Revenue"
})

' チャートのX軸を「Date」にバインドして、日付が横軸に表示されるようにします
Me.flexChart1.BindingX = "Date"

' データをFlexChartに渡します
Me.flexChart1.DataSource = GetProductRevenue()

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

public List<Product> GetProductRevenue()
{
    List<Product> _list = new List<Product>();
    _list.Add(new Product() { Name = "Desktop", Date = new DateTime(2018, 04, 07), Orders = 265, Revenue = 6625 });
    _list.Add(new Product() { Name = "Desktop", Date = new DateTime(2018, 05, 08), Orders = 107, Revenue = 2675 });
    _list.Add(new Product() { Name = "Mouse", Date = new DateTime(2018, 06, 02), Orders = 56, Revenue = 560 });
    _list.Add(new Product() { Name = "Mouse", Date = new DateTime(2018, 07, 06), Orders = 572, Revenue = 5720 });
    _list.Add(new Product() { Name = "Mouse", Date = new DateTime(2018, 08, 05), Orders = 468, Revenue = 4680 });
    _list.Add(new Product() { Name = "Printer", Date = new DateTime(2018, 09, 02), Orders = 154, Revenue = 2310 });
    _list.Add(new Product() { Name = "Desktop", Date = new DateTime(2018, 10, 03), Orders = 89, Revenue = 2225 });
    _list.Add(new Product() { Name = "Desktop", Date = new DateTime(2018, 11, 05), Orders = 347, Revenue = 8675 });
    _list.Add(new Product() { Name = "Printer", Date = new DateTime(2018, 12, 07), Orders = 204, Revenue = 3060 });
    _list.Add(new Product() { Name = "Printer", Date = new DateTime(2019, 01, 03), Orders = 34, Revenue = 510 });
    _list.Add(new Product() { Name = "Mouse", Date = new DateTime(2019, 02, 06), Orders = 223, Revenue = 2230 });
    _list.Add(new Product() { Name = "Desktop", Date = new DateTime(2019, 03, 08), Orders = 119, Revenue = 2975 });
    return _list;
}
Public Function GetProductRevenue() As List(Of Product)
    Dim _list As New List(Of Product)()
    _list.Add(New Product() With {
         .Name = "Desktop",
          .[Date] = New DateTime(2018, 4, 7),
          .Orders = 265,
          .Revenue = 6625
    })
    _list.Add(New Product() With {
          .Name = "Desktop",
          .[Date] = New DateTime(2018, 5, 8),
          .Orders = 107,
          .Revenue = 2675
    })
    _list.Add(New Product() With {
          .Name = "Mouse",
          .[Date] = New DateTime(2018, 6, 2),
          .Orders = 56,
          .Revenue = 560
    })
    _list.Add(New Product() With {
          .Name = "Mouse",
          .[Date] = New DateTime(2018, 7, 6),
          .Orders = 572,
          .Revenue = 5720
    })
    _list.Add(New Product() With {
          .Name = "Mouse",
          .[Date] = New DateTime(2018, 8, 5),
          .Orders = 468,
          .Revenue = 4680
    })
    _list.Add(New Product() With {
          .Name = "Printer",
          .[Date] = New DateTime(2018, 9, 2),
          .Orders = 154,
          .Revenue = 2310
    })
    _list.Add(New Product() With {
          .Name = "Desktop",
          .[Date] = New DateTime(2018, 10, 3),
          .Orders = 89,
          .Revenue = 2225
    })
    _list.Add(New Product() With {
          .Name = "Desktop",
          .[Date] = New DateTime(2018, 11, 5),
          .Orders = 347,
          .Revenue = 8675
    })
    _list.Add(New Product() With {
          .Name = "Printer",
          .[Date] = New DateTime(2018, 12, 7),
          .Orders = 204,
          .Revenue = 3060
    })
    _list.Add(New Product() With {
          .Name = "Printer",
          .[Date] = New DateTime(2019, 1, 3),
          .Orders = 34,
          .Revenue = 510
    })
    _list.Add(New Product() With {
          .Name = "Mouse",
          .[Date] = New DateTime(2019, 2, 6),
          .Orders = 223,
          .Revenue = 2230
    })
    _list.Add(New Product() With {
          .Name = "Desktop",
          .[Date] = New DateTime(2019, 3, 8),
          .Orders = 119,
          .Revenue = 2975
    })
    Return _list
End Function