FlexChart for WinForms
RangedHistogram
FlexChart > FlexChart の理解 > FlexChart タイプ > RangedHistogram

RangedHistogram は、新しい Excel 形式のヒストグラムで、範囲付き X 軸に対する Y 軸の度数分布を視覚化するために役立ちます。ヒストグラムチャートタイプと同様に、ビンは、生データ値を重複のない連続した間隔に分割することで作成されます。特定のビンに入る値の数に基づき、X 軸に沿った長方形の柱として度数がプロットされます。

RangedHistogram は、提供されたデータの度数分布を非カテゴリモードまたはカテゴリモードでプロットします。

非カテゴリモード

非カテゴリモードでは、元のデータポイントがいくつかの間隔または範囲に分類されます。これらの間隔が X 軸にプロットされ、対応する範囲の度数分布が Y 軸に示されます。FlexChart は、データをグループ化する間隔を自動的に計算します。
ただし、この動作は、BinMode プロパティで HistogramBinning を指定することで制御できます。さらに、BinWidthNumberOfBinsUnderflowBin および OverflowBin の値を設定し、 ShowUnderflowBin と ShowOverflowBin を指定できます。

次の図に、ある小売店の製品販売数の度数分布を非カテゴリモードで示します。

Excel-like histogram

特定のデータの RangedHistogram を非カテゴリモードで作成するには、次のコードスニペットに示すように、RangedHistogram 系列を追加し、ChartType プロパティを RangedHistogram に設定する必要があります。

public partial class RHistogram : Form
{
    
    C1.Win.Chart.RangedHistogram histogramRSeries;
    public RHistogram()
    {
        InitializeComponent();
        SetRangedChart();
    }

    void SetRangedChart()
    {
        flexChart2.Dock = DockStyle.Fill;
        flexChart2.Visible = true;
        flexChart2.BackColor = Color.White;

        flexChart2.BeginUpdate();
        flexChart2.Series.Clear();
        flexChart2.ChartType = ChartType.RangedHistogram;       
       
        histogramRSeries = new C1.Win.Chart.RangedHistogram();
        histogramRSeries.Name = "度数";
        flexChart2.Series.Add(histogramRSeries);
       
        flexChart2.DataSource = new[]
        {
             new { Name = "文房具", Value = 20 },
                new { Name = "本", Value = 35 },
                new { Name = "おもちゃやゲーム", Value = 40 },
                new { Name = "文房具", Value = 55 },
                new { Name = "本", Value = 80 },
                new { Name = "おもちゃやゲーム", Value = 60 },
                new { Name = "文房具", Value = 61 },
                new { Name = "本", Value = 85 },
                new { Name = "おもちゃやゲーム", Value = 80 },
                new { Name = "文房具", Value = 64 },
                new { Name = "本", Value = 80 },
                new { Name = "おもちゃやゲーム", Value = 75 },
                new { Name = "文房具", Value = 1222 },
                new { Name = "本", Value = 133 },
                new { Name = "おもちゃやゲーム", Value = 80 },
        };

        flexChart2.Binding = "Value";
        histogramRSeries.BinMode = HistogramBinning.NumberOfBins;
        histogramRSeries.NumberOfBins = 5;
        histogramRSeries.OverflowBin = 89;
        histogramRSeries.UnderflowBin = 20;
        histogramRSeries.ShowOverflowBin = true;
        histogramRSeries.ShowUnderflowBin = true;
        flexChart2.EndUpdate();
    }
 
}

カテゴリモード

カテゴリモードでは、度数データが元のデータに基づいて提供されるいくつかのカテゴリに排他的にグループ化され(X 軸にプロット)、対応するカテゴリの累積的度数が Y 軸に描画されます。BindingX プロパティを設定すると、RangedHistogram 系列のカテゴリモードが有効になります。

このモードでは、RangedHistogram 系列の BinMode、BinWidth、NumberOfBins、OverflowBin、UnderflowBin の各プロパティは無視されます。

次の図に、ある小売店の 3 つのカテゴリの製品(文房具、本、おもちゃとゲーム)の販売数の度数分布をカテゴリモードで示します。

Excel-like ranged histogram

特定のデータの RangedHistogram をカテゴリモードで作成するには、次のコードスニペットに示すように、RangedHistogram 系列を追加し、ChartType プロパティを RangedHistogram に設定し、BindingX プロパティを設定する必要があります。

public partial class RHistogram : Form
{

    C1.Win.Chart.RangedHistogram histogramRSeries;
    public RHistogram()
    {
        InitializeComponent();
        SetRangedChart();
    }

    void SetRangedChart()
    {
        flexChart2.Dock = DockStyle.Fill;
        flexChart2.Visible = true;
        flexChart2.BackColor = Color.White;

        flexChart2.BeginUpdate();
        flexChart2.Series.Clear();
        flexChart2.ChartType = ChartType.RangedHistogram;

        histogramRSeries = new C1.Win.Chart.RangedHistogram();
        histogramRSeries.Name = "度数";
        flexChart2.Series.Add(histogramRSeries);

        flexChart2.DataSource = new[]
        {
             new { Name = "文房具", Value = 20 },
                new { Name = "本", Value = 35 },
                new { Name = "おもちゃやゲーム", Value = 40 },
                new { Name = "文房具", Value = 55 },
                new { Name = "本", Value = 80 },
                new { Name = "おもちゃやゲーム", Value = 60 },
                new { Name = "文房具", Value = 61 },
                new { Name = "本", Value = 85 },
                new { Name = "おもちゃやゲーム", Value = 80 },
                new { Name = "文房具", Value = 64 },
                new { Name = "本", Value = 80 },
                new { Name = "おもちゃやゲーム", Value = 75 },
                new { Name = "文房具", Value = 1222 },
                new { Name = "本", Value = 133 },
                new { Name = "おもちゃやゲーム", Value = 80 },
        };

        flexChart2.Binding = "Value";
        flexChart2.BindingX = "Name";
        histogramRSeries.BinMode = HistogramBinning.NumberOfBins;
        histogramRSeries.NumberOfBins = 5;
        histogramRSeries.OverflowBin = 89;
        histogramRSeries.UnderflowBin = 20;
        histogramRSeries.ShowOverflowBin = true;
        histogramRSeries.ShowUnderflowBin = true;
        flexChart2.EndUpdate();
    }

}

従来のヒストグラムとは異なり、RangedHistogram と同じ X 軸を使用して他のチャートタイプをプロットすることはできません。