FlexChart for WinForms
ファンネル
FlexChart > FlexChart の理解 > FlexChart タイプ > ファンネル

ファンネルグラフを使用すると、1 次元プロセスの連続的な段階を表現できます。たとえば、販売見込み客、有望見込み客、売買交渉、成約などの売買プロセスの段階を通して見込み客を追跡するとします。

このプロセスの各段階で、全体に対する割合(パーセンテージ)を表します。そのため、チャートは、最初に最大の段階があり、段階が進むごとに小さくなる漏斗の形状になります。

ファンネルグラフは、どの段階にどの程度の割合で値が減少しているかが顕著にわかる場所として、プロセス内に潜在的な問題がある領域を特定します。

FlexChart には、次の 2 つの形式のファンネルグラフが用意されています。

次の図は、受注処理評価プロセスの 7 つの段階の注文数を示す台形グラフと積層横棒グラフを示します。

台形グラフ

積層横棒グラフ

FlexChart の ChartType プロパティを ChartType 列挙の Funnel に設定して、ファンネルグラフを使用します。FunnelType プロパティを FunnelChartType 列挙の Default または Rectangle に設定して、ファンネルグラフのタイプを台形グラフと積層横棒グラフのいずれかに指定します。

さらに、台形グラフに設定されている場合は、FunnelNeckWidth および FunnelNeckHeight プロパティを設定して、ファンネルグラフのネックのサイズを変更します。これらのプロパティは、FlexChart クラスの Options プロパティからアクセスできる ChartOptions クラスにあります。

次のコードは、受注処理プロセスの 7 つの段階の受注量の値のデータを手動で作成します。このスニペットは、チャートタイプを Funnel に設定し、ファンネルのネックのサイズを指定し、チャートのヘッダー、凡例、データラベルを設定します。

' 系列コレクションをクリアします。
FlexChart1.Series.Clear()

' データを作成します。
Dim data = New Object() {New With {
     .Name = "受け取り済み",
     .Value = 99000
}, New With {
     .Name = "処理済み",
     .Value = 85000
}, New With {
     .Name = "検定済み",
     .Value = 60000
}, New With {
     .Name = "解放済み",
     .Value = 50000
}, New With {
     .Name = "発送済み",
     .Value = 45000
}, New With {
     .Name = "完了済み",
     .Value = 30000
},
    New With {
     .Name = "配達済み",
     .Value = 25000
}}

' 系列のインスタンスを作成します。
Dim series1 As New C1.Win.Chart.Series()

' 系列コレクションにインスタンスを追加します。
FlexChart1.Series.Add(series1)

' YのBindingを設定します。
series1.Binding = "Value"

' XのBindingを設定し、グラフにデータを追加します。
FlexChart1.BindingX = "Name"
FlexChart1.DataSource = data

' チャートタイプをファンネルとして設定します。
FlexChart1.ChartType = ChartType.Funnel

' ファンネルチャートタイプをデフォルト(台形チャート)に設定します。
FlexChart1.Options.FunnelType = FunnelChartType.[Default]

' ファンネルの首の高さを設定します。
FlexChart1.Options.FunnelNeckHeight = 0.05

' ファンネルの首の幅を設定します。
FlexChart1.Options.FunnelNeckWidth = 0.2
// 系列コレクションをクリアします。
flexChart1.Series.Clear();

// データを作成します。
var data = new[]
{
    new { Name = "受け取り済み", Value = 99000 },
    new { Name = "処理済み", Value = 85000 },
    new { Name = "検定済み", Value = 60000 },
    new { Name = "解放済み", Value = 50000 },
    new { Name = "発送済み", Value = 45000 },
    new { Name = "完了済み", Value = 30000 },
    new { Name = "配達済み", Value = 25000 }
};

// 系列のインスタンスを作成します。
C1.Win.Chart.Series series1 = new C1.Win.Chart.Series();

// 系列コレクションにインスタンスを追加します。
flexChart1.Series.Add(series1);

// YのBindingを設定します。
series1.Binding = "Value";

// XのBindingを設定し、グラフにデータを追加します。
flexChart1.BindingX = "Name";
flexChart1.DataSource = data;

// チャートタイプをファンネルとして設定します。
flexChart1.ChartType = ChartType.Funnel;

// ファンネルチャートタイプをデフォルト(台形チャート)に設定します。
flexChart1.Options.FunnelType = FunnelChartType.Default;

// ファンネルの首の高さを設定します。
flexChart1.Options.FunnelNeckHeight = 0.05;

// ファンネルの首の幅を設定します。
flexChart1.Options.FunnelNeckWidth = 0.2;