ComponentOne Studio TrueChart for ASP.NET (C1WebChart2D) ヘルプ
ヒストグラムグラフ
C1Chart の使い方 > 2Dグラフ種別 > ヒストグラム > ヒストグラムの種類 > ヒストグラムグラフ

ヒストグラムの外観は、棒グラフに似ています。小さな違いとして、棒グラフでは棒同士の間を空けますが、ヒストグラムでは棒同士の間を空けません。ヒストグラムの縦棒同士の間が空いていないのは、縦棒の境界が各縦棒で表している区間の境界を示す実際の X 軸値を表すからです。

ヒストグラムと棒グラフの外観は相関していますが、機能は相関していません。棒グラフはデータ点から作成しますが、ヒストグラムはデータの度数分布から作成します。

以下のグラフは、棒グラフとヒストグラムの違いを示します。両方のグラフでまったく同じ Y データを使用します。棒グラフ(上側)は、各年の温度の平均温度を示します。ヒストグラム(下側)は、同じ入力温度データを使用して、各区間に分布する温度の数を自動的に集計して、結果のヒストグラムを描画します。わかりやすくするため、各区間の上部に各区間内のカウント数を示すグラフラベルを付けてあります。


以下のグラフは、ヒストグラムの詳細とプロパティを示します。1番目の ChartGroup では 100個のランダムデータ座標の散布図で、2番目の ChartGroup では各散布データ点からマーカーの交差点までの距離の分布を基にしたヒストグラムです。


上記のヒストグラムでは、IntervalCreationMethod プロパティの SemiAutomatic メソッドを使用して、上限値と下限値、および区間数を指定しています。IntervalCreationMethod プロパティは、異なる区間の境界を設定する必要がある場合に便利です。

IntervalCreationMethod プロパティから、以下の3つのメソッドの1つを選択できます。

設計時に IntervalCreationMethod プロパティにアクセスするには、ChartData ノードを展開して SeriesList ノードの横の〈…〉ボタンをクリックします。ChartDataSeries コレクションエディタが表示されます。Histogram ノードを探して展開します。IntervalCreationMethod プロパティを選択し、IntervalCreationMethod プロパティのドロップダウンボックスの3つのメソッドの1つを選択してメソッドのタイプを選択します。IntervalCreationMethod プロパティは、コードから以下を入力してアクセスすることもできます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
cds.Histogram.IntervalCreationMethod = IntervalMethodEnum.SemiAutomatic

C# コードの書き方

C#
コードのコピー
cds.Histogram.IntervalCreationMethod = IntervalMethodEnum.SemiAutomatic;
注意:上記コード内の文字列 cds は ChartDataSeries オブジェクトの変数名です。上記のサンプルコードでは、SemiAutomatic メソッドを使用しています。Automatic メソッドまたは XDataBoundaries メソッドを使用するには、いずれかを IntervalMethodEnum に割り当てます。

以下のサンプルコードのように、ChartHistogram オブジェクトの DisplayType プロパティを使用し、区間と区間数をヒストグラム、度数グラフ、階段度数グラフとして表示できます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
'グラフのヒストグラムを「ヒストグラム」として表示します。
ch.DisplayType = DisplayTypeEnum.Histogram

'グラフのヒストグラムを「度数グラフ」として表示します。
ch.DisplayType = DisplayTypeEnum.FrequencyGraph

'グラフのヒストグラムを「階段型度数グラフ」として表示します。
ch.DisplayType = DisplayTypeEnum.SteppedFrequencyGraph

C# コードの書き方

C#
コードのコピー
//グラフのヒストグラムを「ヒストグラム」として表示します。
ch.DisplayType = DisplayTypeEnum.Histogram;

//グラフのヒストグラムを「度数グラフ」として表示します。
ch.DisplayType = DisplayTypeEnum.FrequencyGraph;

//グラフのヒストグラムを「階段型度数グラフ」として表示します。
ch.DisplayType = DisplayTypeEnum.SteppedFrequencyGraph;
注意:文字列 ch は、ChartHistogram オブジェクトの変数名です。

いくつかのデータ要素が残りのデータ要素から離れて現れる場合もあります。この場合、この距離値は異常値と呼ばれます。大部分の場合、異常値は残りのデータから離れすぎているため区間内に分布せず、データ要素の値が不明となります。

異常値を除外させないため、C1Chart の ChartHistogram オブジェクトは以下の2つのプロパティを提供します。

デザイナでは、AboveIntervalCount プロパティと BelowIntervalCount プロパティはChartDataSeries コレクションエディタの Histogram ノードにあります。以下のコードは、AboveIntervalCount プロパティを使用して、異常値があるかどうかを調べる方法を示します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim overflow As Integer = CInt(cds.Histogram.AboveIntervalCount)
Dim msg As String = ""
' これは最後の区間の後に分布する異常値があるかどうかを調べます。
If overflow > 0 Then
        msg = "Number > " + carea.AxisX.Max.ToString() + " = " + overflow.ToString()
End If
c1Chart1.ChartLabels("overflow").Text = msg

C# コードの書き方

C#
コードのコピー
int overflow = (int)cds.Histogram.AboveIntervalCount;
string msg = "";
// これは最後の区間の後に分布する異常値があるかどうかを調べます。
if(overflow > 0)
{
        msg = "Number > " + carea.AxisX.Max.ToString() + " = " + overflow.ToString();
}
c1Chart1.ChartLabels["overflow"].Text = msg;

ヒストグラムでは、縦棒または区間帯はそれが表す値に比例します。すべての区間の区間幅が同じ場合、各区間の高さは単位幅あたり同じ度数を表します。縦棒の幅はサイズが異なる場合もあります。この場合、縦棒の高さを調整して各区間帯の比例を維持する必要があります。たとえば、いくつかの不均等な縦棒を持つ場合、C1Chart の Histogram オブジェクトの Normalized プロパティを利用して、縦棒または区間をそれが表す値に比例させることができます。

Histogram オブジェクトには NormalDisplayNormalizationIntervalNormalized の3つのプロパティが含まれます。Normalized プロパティを使用して、不均等な区間を正規化して、各区間の高さを単位幅あたり同じ度数を表すことができます。不均等な区間は、残りの区間と一様でない区間です。Normalized プロパティを True に設定した場合、NormalizationInterval プロパティを特定の幅サイズに柔軟に設定できます。たとえば、IntervalWidth が 10 のときこれを 20 に正規化したいと仮定します。これにより、各区間のサイズが2倍になります。その結果、各度数(Y 値)が2倍になります。IntervalWidth を 2 から 10 に正規化して、サイズの5分の1の区間幅を正規化できるようにしたい場合、各度数(Y 値)は5分の1に小さくなります。